Date: Sun, 14 Jan 2007 15:29:07 +0100 (CET) From: Stefan Richter Subject: firewire: mark some structs const Instances of struct file_operations and struct fw_card_driver can be qualified as "const". Ditto with struct fw_descriptor.data, struct fw_device_id, and predefined instances of struct fw_address_region, at least in the current implementation. Data qualified as const is placed into the .rodata section which won't be mixed with dirty data. Signed-off-by: Stefan Richter Index: linux/drivers/firewire/fw-card.c =================================================================== --- linux.orig/drivers/firewire/fw-card.c 2007-01-19 11:57:23.000000000 +0100 +++ linux/drivers/firewire/fw-card.c 2007-01-19 11:57:34.000000000 +0100 @@ -257,7 +257,7 @@ flush_timer_callback(unsigned long data) } void -fw_card_initialize(struct fw_card *card, struct fw_card_driver *driver, +fw_card_initialize(struct fw_card *card, const struct fw_card_driver *driver, struct device *device) { static int index; Index: linux/drivers/firewire/fw-device-cdev.c =================================================================== --- linux.orig/drivers/firewire/fw-device-cdev.c 2007-01-19 11:57:23.000000000 +0100 +++ linux/drivers/firewire/fw-device-cdev.c 2007-01-19 11:57:34.000000000 +0100 @@ -602,7 +602,7 @@ static unsigned int fw_device_op_poll(st return 0; } -struct file_operations fw_device_ops = { +const struct file_operations fw_device_ops = { .owner = THIS_MODULE, .open = fw_device_op_open, .read = fw_device_op_read, Index: linux/drivers/firewire/fw-transaction.h =================================================================== --- linux.orig/drivers/firewire/fw-transaction.h 2007-01-19 11:57:31.000000000 +0100 +++ linux/drivers/firewire/fw-transaction.h 2007-01-19 11:57:34.000000000 +0100 @@ -133,7 +133,7 @@ struct fw_descriptor { struct list_head link; size_t length; u32 key; - u32 *data; + const u32 *data; }; int fw_core_add_descriptor (struct fw_descriptor *desc); @@ -218,14 +218,14 @@ struct fw_address_region { u64 end; }; -extern struct fw_address_region fw_low_memory_region; -extern struct fw_address_region fw_high_memory_region; -extern struct fw_address_region fw_private_region; -extern struct fw_address_region fw_csr_region; -extern struct fw_address_region fw_unit_space_region; +extern const struct fw_address_region fw_low_memory_region; +extern const struct fw_address_region fw_high_memory_region; +extern const struct fw_address_region fw_private_region; +extern const struct fw_address_region fw_csr_region; +extern const struct fw_address_region fw_unit_space_region; int fw_core_add_address_handler(struct fw_address_handler *handler, - struct fw_address_region *region); + const struct fw_address_region *region); void fw_core_remove_address_handler(struct fw_address_handler *handler); void fw_send_response(struct fw_card *card, struct fw_request *request, int rcode); @@ -233,7 +233,7 @@ void fw_send_response(struct fw_card *ca extern struct bus_type fw_bus_type; struct fw_card { - struct fw_card_driver *driver; + const struct fw_card_driver *driver; struct device *device; int node_id; @@ -399,7 +399,7 @@ fw_node_event(struct fw_card *card, stru /* Do we need phy speed here also? If we add more args, maybe we should go back to struct fw_card_info. */ void -fw_card_initialize(struct fw_card *card, struct fw_card_driver *driver, +fw_card_initialize(struct fw_card *card, const struct fw_card_driver *driver, struct device *device); int fw_card_add(struct fw_card *card, Index: linux/drivers/firewire/fw-device.h =================================================================== --- linux.orig/drivers/firewire/fw-device.h 2007-01-19 11:57:31.000000000 +0100 +++ linux/drivers/firewire/fw-device.h 2007-01-19 11:57:34.000000000 +0100 @@ -113,7 +113,7 @@ struct fw_driver { struct device_driver driver; /* Called when the parent device sits through a bus reset. */ void (*update) (struct fw_unit *unit); - struct fw_device_id *id_table; + const struct fw_device_id *id_table; }; static inline struct fw_driver * @@ -122,6 +122,6 @@ fw_driver(struct device_driver *drv) return container_of(drv, struct fw_driver, driver); } -extern struct file_operations fw_device_ops; +extern const struct file_operations fw_device_ops; #endif /* __fw_device_h */ Index: linux/drivers/firewire/fw-ohci.c =================================================================== --- linux.orig/drivers/firewire/fw-ohci.c 2007-01-19 11:57:26.000000000 +0100 +++ linux/drivers/firewire/fw-ohci.c 2007-01-19 11:57:34.000000000 +0100 @@ -1146,7 +1146,7 @@ ohci_queue_iso(struct fw_iso_context *ba return 0; } -static struct fw_card_driver ohci_driver = { +static const struct fw_card_driver ohci_driver = { .name = ohci_driver_name, .enable = ohci_enable, .update_phy_reg = ohci_update_phy_reg, Index: linux/drivers/firewire/fw-transaction.c =================================================================== --- linux.orig/drivers/firewire/fw-transaction.c 2007-01-19 11:57:23.000000000 +0100 +++ linux/drivers/firewire/fw-transaction.c 2007-01-19 11:57:34.000000000 +0100 @@ -331,15 +331,15 @@ lookup_enclosing_address_handler(struct static DEFINE_SPINLOCK(address_handler_lock); static LIST_HEAD(address_handler_list); -struct fw_address_region fw_low_memory_region = +const struct fw_address_region fw_low_memory_region = { 0x000000000000ull, 0x000100000000ull }; -struct fw_address_region fw_high_memory_region = +const struct fw_address_region fw_high_memory_region = { 0x000100000000ull, 0xffffe0000000ull }; -struct fw_address_region fw_private_region = +const struct fw_address_region fw_private_region = { 0xffffe0000000ull, 0xfffff0000000ull }; -struct fw_address_region fw_csr_region = +const struct fw_address_region fw_csr_region = { 0xfffff0000000ULL, 0xfffff0000800ull }; -struct fw_address_region fw_unit_space_region = +const struct fw_address_region fw_unit_space_region = { 0xfffff0000900ull, 0x1000000000000ull }; EXPORT_SYMBOL(fw_low_memory_region); @@ -358,7 +358,7 @@ EXPORT_SYMBOL(fw_unit_space_region); int fw_core_add_address_handler(struct fw_address_handler *handler, - struct fw_address_region *region) + const struct fw_address_region *region) { struct fw_address_handler *other; unsigned long flags; @@ -684,7 +684,7 @@ MODULE_AUTHOR("Kristian Hoegsberg