diff options
| author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2009-12-26 01:44:10 +0100 | 
|---|---|---|
| committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2009-12-29 19:58:17 +0100 | 
| commit | 13b302d0a217580c0129b0641b0ca8b592e437b0 (patch) | |
| tree | aa895bb410b4262d9942a0f77fe623c7d610da0c | |
| parent | 3c2c58cb33b3b15a2c4871babeec8fe1456e1db6 (diff) | |
firewire: qualify config ROM cache pointers as const pointers
Several config ROM related functions only peek at the ROM cache; mark
their arguments as const pointers.  Ditto fw_device.config_rom and
fw_unit.directory, as the memory behind them is meant to be write-once.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
| -rw-r--r-- | drivers/firewire/core-device.c | 21 | ||||
| -rw-r--r-- | drivers/firewire/sbp2.c | 5 | ||||
| -rw-r--r-- | include/linux/firewire.h | 12 | 
3 files changed, 20 insertions, 18 deletions
diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c index 5d5c6a689837..eecd52dc8e98 100644 --- a/drivers/firewire/core-device.c +++ b/drivers/firewire/core-device.c @@ -43,7 +43,7 @@  #include "core.h" -void fw_csr_iterator_init(struct fw_csr_iterator *ci, u32 * p) +void fw_csr_iterator_init(struct fw_csr_iterator *ci, const u32 *p)  {  	ci->p = p + 1;  	ci->end = ci->p + (p[0] >> 16); @@ -59,7 +59,7 @@ int fw_csr_iterator_next(struct fw_csr_iterator *ci, int *key, int *value)  }  EXPORT_SYMBOL(fw_csr_iterator_next); -static u32 *search_leaf(u32 *directory, int search_key) +static const u32 *search_leaf(const u32 *directory, int search_key)  {  	struct fw_csr_iterator ci;  	int last_key = 0, key, value; @@ -76,7 +76,7 @@ static u32 *search_leaf(u32 *directory, int search_key)  	return NULL;  } -static int textual_leaf_to_string(u32 *block, char *buf, size_t size) +static int textual_leaf_to_string(const u32 *block, char *buf, size_t size)  {  	unsigned int quadlets, i;  	char c; @@ -116,9 +116,9 @@ static int textual_leaf_to_string(u32 *block, char *buf, size_t size)   * the immediate entry with @key.  The string is zero-terminated.   * Returns strlen(buf) or a negative error code.   */ -int fw_csr_string(u32 *directory, int key, char *buf, size_t size) +int fw_csr_string(const u32 *directory, int key, char *buf, size_t size)  { -	u32 *leaf = search_leaf(directory, key); +	const u32 *leaf = search_leaf(directory, key);  	if (!leaf)  		return -ENOENT; @@ -128,7 +128,7 @@ EXPORT_SYMBOL(fw_csr_string);  static bool is_fw_unit(struct device *dev); -static int match_unit_directory(u32 *directory, u32 match_flags, +static int match_unit_directory(const u32 *directory, u32 match_flags,  				const struct ieee1394_device_id *id)  {  	struct fw_csr_iterator ci; @@ -262,7 +262,7 @@ static ssize_t show_immediate(struct device *dev,  	struct config_rom_attribute *attr =  		container_of(dattr, struct config_rom_attribute, attr);  	struct fw_csr_iterator ci; -	u32 *dir; +	const u32 *dir;  	int key, value, ret = -ENOENT;  	down_read(&fw_device_rwsem); @@ -293,7 +293,7 @@ static ssize_t show_text_leaf(struct device *dev,  {  	struct config_rom_attribute *attr =  		container_of(dattr, struct config_rom_attribute, attr); -	u32 *dir; +	const u32 *dir;  	size_t bufsize;  	char dummy_buf[2];  	int ret; @@ -421,7 +421,7 @@ static ssize_t guid_show(struct device *dev,  	return ret;  } -static int units_sprintf(char *buf, u32 *directory) +static int units_sprintf(char *buf, const u32 *directory)  {  	struct fw_csr_iterator ci;  	int key, value; @@ -503,7 +503,8 @@ static int read_rom(struct fw_device *device,   */  static int read_bus_info_block(struct fw_device *device, int generation)  { -	u32 *rom, *stack, *old_rom, *new_rom; +	const u32 *old_rom, *new_rom; +	u32 *rom, *stack;  	u32 sp, key;  	int i, end, length, ret = -1; diff --git a/drivers/firewire/sbp2.c b/drivers/firewire/sbp2.c index d485cdd8cbac..7e33b0b1704c 100644 --- a/drivers/firewire/sbp2.c +++ b/drivers/firewire/sbp2.c @@ -1014,7 +1014,8 @@ static int sbp2_add_logical_unit(struct sbp2_target *tgt, int lun_entry)  	return 0;  } -static int sbp2_scan_logical_unit_dir(struct sbp2_target *tgt, u32 *directory) +static int sbp2_scan_logical_unit_dir(struct sbp2_target *tgt, +				      const u32 *directory)  {  	struct fw_csr_iterator ci;  	int key, value; @@ -1027,7 +1028,7 @@ static int sbp2_scan_logical_unit_dir(struct sbp2_target *tgt, u32 *directory)  	return 0;  } -static int sbp2_scan_unit_dir(struct sbp2_target *tgt, u32 *directory, +static int sbp2_scan_unit_dir(struct sbp2_target *tgt, const u32 *directory,  			      u32 *model, u32 *firmware_revision)  {  	struct fw_csr_iterator ci; diff --git a/include/linux/firewire.h b/include/linux/firewire.h index df680216e7b6..4bd94bf5e739 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h @@ -65,13 +65,13 @@  #define CSR_DIRECTORY_ID	0x20  struct fw_csr_iterator { -	u32 *p; -	u32 *end; +	const u32 *p; +	const u32 *end;  }; -void fw_csr_iterator_init(struct fw_csr_iterator *ci, u32 *p); +void fw_csr_iterator_init(struct fw_csr_iterator *ci, const u32 *p);  int fw_csr_iterator_next(struct fw_csr_iterator *ci, int *key, int *value); -int fw_csr_string(u32 *directory, int key, char *buf, size_t size); +int fw_csr_string(const u32 *directory, int key, char *buf, size_t size);  extern struct bus_type fw_bus_type; @@ -163,7 +163,7 @@ struct fw_device {  	struct mutex client_list_mutex;  	struct list_head client_list; -	u32 *config_rom; +	const u32 *config_rom;  	size_t config_rom_length;  	int config_rom_retries;  	unsigned is_local:1; @@ -205,7 +205,7 @@ int fw_device_enable_phys_dma(struct fw_device *device);   */  struct fw_unit {  	struct device device; -	u32 *directory; +	const u32 *directory;  	struct fw_attribute_group attribute_group;  };  | 
