From: Arjan van de Ven Date: Mon, 12 Feb 2007 08:55:34 +0000 (-0800) Subject: [PATCH] mark struct file_operations const 5 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=d54b1fdb1d9f82e375a299e22bd366aad52d4c34;p=linux.git [PATCH] mark struct file_operations const 5 Many struct file_operations in the kernel can be "const". Marking them const moves these to the .rodata section, which avoids false sharing with potential dirty data. In addition it'll catch accidental writes at compile time to these shared resources. Signed-off-by: Arjan van de Ven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/message/i2o/i2o_config.c b/drivers/message/i2o/i2o_config.c index e33d446e74939..8ba275a127731 100644 --- a/drivers/message/i2o/i2o_config.c +++ b/drivers/message/i2o/i2o_config.c @@ -1111,7 +1111,7 @@ static int cfg_release(struct inode *inode, struct file *file) return 0; } -static struct file_operations config_fops = { +static const struct file_operations config_fops = { .owner = THIS_MODULE, .llseek = no_llseek, .ioctl = i2o_cfg_ioctl, diff --git a/drivers/message/i2o/i2o_proc.c b/drivers/message/i2o/i2o_proc.c index a61cb17c5c126..06892ac2286e4 100644 --- a/drivers/message/i2o/i2o_proc.c +++ b/drivers/message/i2o/i2o_proc.c @@ -1703,133 +1703,133 @@ static int i2o_seq_open_dev_name(struct inode *inode, struct file *file) return single_open(file, i2o_seq_show_dev_name, PDE(inode)->data); }; -static struct file_operations i2o_seq_fops_lct = { +static const struct file_operations i2o_seq_fops_lct = { .open = i2o_seq_open_lct, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_hrt = { +static const struct file_operations i2o_seq_fops_hrt = { .open = i2o_seq_open_hrt, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_status = { +static const struct file_operations i2o_seq_fops_status = { .open = i2o_seq_open_status, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_hw = { +static const struct file_operations i2o_seq_fops_hw = { .open = i2o_seq_open_hw, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_ddm_table = { +static const struct file_operations i2o_seq_fops_ddm_table = { .open = i2o_seq_open_ddm_table, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_driver_store = { +static const struct file_operations i2o_seq_fops_driver_store = { .open = i2o_seq_open_driver_store, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_drivers_stored = { +static const struct file_operations i2o_seq_fops_drivers_stored = { .open = i2o_seq_open_drivers_stored, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_groups = { +static const struct file_operations i2o_seq_fops_groups = { .open = i2o_seq_open_groups, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_phys_device = { +static const struct file_operations i2o_seq_fops_phys_device = { .open = i2o_seq_open_phys_device, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_claimed = { +static const struct file_operations i2o_seq_fops_claimed = { .open = i2o_seq_open_claimed, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_users = { +static const struct file_operations i2o_seq_fops_users = { .open = i2o_seq_open_users, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_priv_msgs = { +static const struct file_operations i2o_seq_fops_priv_msgs = { .open = i2o_seq_open_priv_msgs, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_authorized_users = { +static const struct file_operations i2o_seq_fops_authorized_users = { .open = i2o_seq_open_authorized_users, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_dev_name = { +static const struct file_operations i2o_seq_fops_dev_name = { .open = i2o_seq_open_dev_name, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_dev_identity = { +static const struct file_operations i2o_seq_fops_dev_identity = { .open = i2o_seq_open_dev_identity, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_ddm_identity = { +static const struct file_operations i2o_seq_fops_ddm_identity = { .open = i2o_seq_open_ddm_identity, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_uinfo = { +static const struct file_operations i2o_seq_fops_uinfo = { .open = i2o_seq_open_uinfo, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_sgl_limits = { +static const struct file_operations i2o_seq_fops_sgl_limits = { .open = i2o_seq_open_sgl_limits, .read = seq_read, .llseek = seq_lseek, .release = single_release, }; -static struct file_operations i2o_seq_fops_sensors = { +static const struct file_operations i2o_seq_fops_sensors = { .open = i2o_seq_open_sensors, .read = seq_read, .llseek = seq_lseek, diff --git a/drivers/misc/hdpuftrs/hdpu_cpustate.c b/drivers/misc/hdpuftrs/hdpu_cpustate.c index 11a801be71c88..ca86f113f36af 100644 --- a/drivers/misc/hdpuftrs/hdpu_cpustate.c +++ b/drivers/misc/hdpuftrs/hdpu_cpustate.c @@ -169,7 +169,7 @@ static struct platform_driver hdpu_cpustate_driver = { /* * The various file operations we support. */ -static struct file_operations cpustate_fops = { +static const struct file_operations cpustate_fops = { owner:THIS_MODULE, open:cpustate_open, release:cpustate_release, diff --git a/drivers/misc/ibmasm/ibmasmfs.c b/drivers/misc/ibmasm/ibmasmfs.c index b99dc507de2e4..c436d3de8b8b1 100644 --- a/drivers/misc/ibmasm/ibmasmfs.c +++ b/drivers/misc/ibmasm/ibmasmfs.c @@ -156,7 +156,7 @@ static struct inode *ibmasmfs_make_inode(struct super_block *sb, int mode) static struct dentry *ibmasmfs_create_file (struct super_block *sb, struct dentry *parent, const char *name, - struct file_operations *fops, + const struct file_operations *fops, void *data, int mode) { @@ -581,28 +581,28 @@ static ssize_t remote_settings_file_write(struct file *file, const char __user * return count; } -static struct file_operations command_fops = { +static const struct file_operations command_fops = { .open = command_file_open, .release = command_file_close, .read = command_file_read, .write = command_file_write, }; -static struct file_operations event_fops = { +static const struct file_operations event_fops = { .open = event_file_open, .release = event_file_close, .read = event_file_read, .write = event_file_write, }; -static struct file_operations r_heartbeat_fops = { +static const struct file_operations r_heartbeat_fops = { .open = r_heartbeat_file_open, .release = r_heartbeat_file_close, .read = r_heartbeat_file_read, .write = r_heartbeat_file_write, }; -static struct file_operations remote_settings_fops = { +static const struct file_operations remote_settings_fops = { .open = remote_settings_file_open, .release = remote_settings_file_close, .read = remote_settings_file_read, diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c index 3013d0883b972..61a994ea8af1f 100644 --- a/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c @@ -759,7 +759,7 @@ static int mtd_ioctl(struct inode *inode, struct file *file, return ret; } /* memory_ioctl */ -static struct file_operations mtd_fops = { +static const struct file_operations mtd_fops = { .owner = THIS_MODULE, .llseek = mtd_lseek, .read = mtd_read, diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 8ce8fec615bad..61a6fa465d716 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -3120,7 +3120,7 @@ static int bond_info_open(struct inode *inode, struct file *file) return res; } -static struct file_operations bond_info_fops = { +static const struct file_operations bond_info_fops = { .owner = THIS_MODULE, .open = bond_info_open, .read = seq_read, diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c index 5b788d84011fc..d2542697e298d 100644 --- a/drivers/net/hamradio/bpqether.c +++ b/drivers/net/hamradio/bpqether.c @@ -459,7 +459,7 @@ static int bpq_info_open(struct inode *inode, struct file *file) return seq_open(file, &bpq_seqops); } -static struct file_operations bpq_info_fops = { +static const struct file_operations bpq_info_fops = { .owner = THIS_MODULE, .open = bpq_info_open, .read = seq_read, diff --git a/drivers/net/hamradio/scc.c b/drivers/net/hamradio/scc.c index 2ce047e9d2625..6fdaad5a45775 100644 --- a/drivers/net/hamradio/scc.c +++ b/drivers/net/hamradio/scc.c @@ -2083,7 +2083,7 @@ static int scc_net_seq_open(struct inode *inode, struct file *file) return seq_open(file, &scc_net_seq_ops); } -static struct file_operations scc_net_seq_fops = { +static const struct file_operations scc_net_seq_fops = { .owner = THIS_MODULE, .open = scc_net_seq_open, .read = seq_read, diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c index 6d74f08720d5c..08f27119a8076 100644 --- a/drivers/net/hamradio/yam.c +++ b/drivers/net/hamradio/yam.c @@ -804,7 +804,7 @@ static int yam_info_open(struct inode *inode, struct file *file) return seq_open(file, &yam_seqops); } -static struct file_operations yam_info_fops = { +static const struct file_operations yam_info_fops = { .owner = THIS_MODULE, .open = yam_info_open, .read = seq_read, diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c index 99343b5836b87..458db0538a9af 100644 --- a/drivers/net/ibmveth.c +++ b/drivers/net/ibmveth.c @@ -1156,7 +1156,7 @@ static int ibmveth_proc_open(struct inode *inode, struct file *file) return rc; } -static struct file_operations ibmveth_proc_fops = { +static const struct file_operations ibmveth_proc_fops = { .owner = THIS_MODULE, .open = ibmveth_proc_open, .read = seq_read, diff --git a/drivers/net/irda/vlsi_ir.c b/drivers/net/irda/vlsi_ir.c index e2b1af6184500..3457e9d8b6671 100644 --- a/drivers/net/irda/vlsi_ir.c +++ b/drivers/net/irda/vlsi_ir.c @@ -385,7 +385,7 @@ static int vlsi_seq_open(struct inode *inode, struct file *file) return single_open(file, vlsi_seq_show, PDE(inode)->data); } -static struct file_operations vlsi_proc_fops = { +static const struct file_operations vlsi_proc_fops = { .owner = THIS_MODULE, .open = vlsi_seq_open, .read = seq_read, diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c index 0986f6c843e69..11b575f89856b 100644 --- a/drivers/net/ppp_generic.c +++ b/drivers/net/ppp_generic.c @@ -834,7 +834,7 @@ static int ppp_unattached_ioctl(struct ppp_file *pf, struct file *file, return err; } -static struct file_operations ppp_device_fops = { +static const struct file_operations ppp_device_fops = { .owner = THIS_MODULE, .read = ppp_read, .write = ppp_write, diff --git a/drivers/net/pppoe.c b/drivers/net/pppoe.c index 315d5c3fc66a0..860bb0f60f688 100644 --- a/drivers/net/pppoe.c +++ b/drivers/net/pppoe.c @@ -1043,7 +1043,7 @@ static int pppoe_seq_open(struct inode *inode, struct file *file) return seq_open(file, &pppoe_seq_ops); } -static struct file_operations pppoe_seq_fops = { +static const struct file_operations pppoe_seq_fops = { .owner = THIS_MODULE, .open = pppoe_seq_open, .read = seq_read, diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 151a2e10e4f3d..5643d1e84ed67 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -744,7 +744,7 @@ static int tun_chr_close(struct inode *inode, struct file *file) return 0; } -static struct file_operations tun_fops = { +static const struct file_operations tun_fops = { .owner = THIS_MODULE, .llseek = no_llseek, .read = do_sync_read, diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c index 6c7dfb50143f7..e91b5a84a20a5 100644 --- a/drivers/net/wan/cosa.c +++ b/drivers/net/wan/cosa.c @@ -311,7 +311,7 @@ static int cosa_chardev_ioctl(struct inode *inode, struct file *file, static int cosa_fasync(struct inode *inode, struct file *file, int on); #endif -static struct file_operations cosa_fops = { +static const struct file_operations cosa_fops = { .owner = THIS_MODULE, .llseek = no_llseek, .read = cosa_read, diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c index 44a22701da973..b08055abe83a3 100644 --- a/drivers/net/wireless/airo.c +++ b/drivers/net/wireless/airo.c @@ -4430,53 +4430,53 @@ static int proc_BSSList_open( struct inode *inode, struct file *file ); static int proc_config_open( struct inode *inode, struct file *file ); static int proc_wepkey_open( struct inode *inode, struct file *file ); -static struct file_operations proc_statsdelta_ops = { +static const struct file_operations proc_statsdelta_ops = { .read = proc_read, .open = proc_statsdelta_open, .release = proc_close }; -static struct file_operations proc_stats_ops = { +static const struct file_operations proc_stats_ops = { .read = proc_read, .open = proc_stats_open, .release = proc_close }; -static struct file_operations proc_status_ops = { +static const struct file_operations proc_status_ops = { .read = proc_read, .open = proc_status_open, .release = proc_close }; -static struct file_operations proc_SSID_ops = { +static const struct file_operations proc_SSID_ops = { .read = proc_read, .write = proc_write, .open = proc_SSID_open, .release = proc_close }; -static struct file_operations proc_BSSList_ops = { +static const struct file_operations proc_BSSList_ops = { .read = proc_read, .write = proc_write, .open = proc_BSSList_open, .release = proc_close }; -static struct file_operations proc_APList_ops = { +static const struct file_operations proc_APList_ops = { .read = proc_read, .write = proc_write, .open = proc_APList_open, .release = proc_close }; -static struct file_operations proc_config_ops = { +static const struct file_operations proc_config_ops = { .read = proc_read, .write = proc_write, .open = proc_config_open, .release = proc_close }; -static struct file_operations proc_wepkey_ops = { +static const struct file_operations proc_wepkey_ops = { .read = proc_read, .write = proc_write, .open = proc_wepkey_open, diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c b/drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c index b9df06a06ea96..35dbe45545130 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c @@ -355,37 +355,37 @@ out_up: #undef fappend -static struct file_operations devinfo_fops = { +static const struct file_operations devinfo_fops = { .read = devinfo_read_file, .write = write_file_dummy, .open = open_file_generic, }; -static struct file_operations spromdump_fops = { +static const struct file_operations spromdump_fops = { .read = spromdump_read_file, .write = write_file_dummy, .open = open_file_generic, }; -static struct file_operations drvinfo_fops = { +static const struct file_operations drvinfo_fops = { .read = drvinfo_read_file, .write = write_file_dummy, .open = open_file_generic, }; -static struct file_operations tsf_fops = { +static const struct file_operations tsf_fops = { .read = tsf_read_file, .write = tsf_write_file, .open = open_file_generic, }; -static struct file_operations txstat_fops = { +static const struct file_operations txstat_fops = { .read = txstat_read_file, .write = write_file_dummy, .open = open_file_generic, }; -static struct file_operations restart_fops = { +static const struct file_operations restart_fops = { .write = restart_write_file, .open = open_file_generic, }; diff --git a/drivers/net/wireless/strip.c b/drivers/net/wireless/strip.c index ce3a8bac66ffb..f5ce1c6063d82 100644 --- a/drivers/net/wireless/strip.c +++ b/drivers/net/wireless/strip.c @@ -1160,7 +1160,7 @@ static int strip_seq_open(struct inode *inode, struct file *file) return seq_open(file, &strip_seq_ops); } -static struct file_operations strip_seq_fops = { +static const struct file_operations strip_seq_fops = { .owner = THIS_MODULE, .open = strip_seq_open, .read = seq_read, diff --git a/drivers/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c index 04d641714d347..00e937e9240e5 100644 --- a/drivers/oprofile/event_buffer.c +++ b/drivers/oprofile/event_buffer.c @@ -181,7 +181,7 @@ out: return retval; } -struct file_operations event_buffer_fops = { +const struct file_operations event_buffer_fops = { .open = event_buffer_open, .release = event_buffer_release, .read = event_buffer_read, diff --git a/drivers/oprofile/event_buffer.h b/drivers/oprofile/event_buffer.h index 92416276e5770..9b6a4ebd03e39 100644 --- a/drivers/oprofile/event_buffer.h +++ b/drivers/oprofile/event_buffer.h @@ -41,7 +41,7 @@ void wake_up_buffer_waiter(void); /* add data to the event buffer */ void add_event_entry(unsigned long data); -extern struct file_operations event_buffer_fops; +extern const struct file_operations event_buffer_fops; /* mutex between sync_cpu_buffers() and the * file reading code. diff --git a/drivers/oprofile/oprofile_files.c b/drivers/oprofile/oprofile_files.c index a72006c08f2be..ef953ba5ab6b2 100644 --- a/drivers/oprofile/oprofile_files.c +++ b/drivers/oprofile/oprofile_files.c @@ -44,7 +44,7 @@ static ssize_t depth_write(struct file * file, char const __user * buf, size_t c } -static struct file_operations depth_fops = { +static const struct file_operations depth_fops = { .read = depth_read, .write = depth_write }; @@ -56,7 +56,7 @@ static ssize_t pointer_size_read(struct file * file, char __user * buf, size_t c } -static struct file_operations pointer_size_fops = { +static const struct file_operations pointer_size_fops = { .read = pointer_size_read, }; @@ -67,7 +67,7 @@ static ssize_t cpu_type_read(struct file * file, char __user * buf, size_t count } -static struct file_operations cpu_type_fops = { +static const struct file_operations cpu_type_fops = { .read = cpu_type_read, }; @@ -101,7 +101,7 @@ static ssize_t enable_write(struct file * file, char const __user * buf, size_t } -static struct file_operations enable_fops = { +static const struct file_operations enable_fops = { .read = enable_read, .write = enable_write, }; @@ -114,7 +114,7 @@ static ssize_t dump_write(struct file * file, char const __user * buf, size_t co } -static struct file_operations dump_fops = { +static const struct file_operations dump_fops = { .write = dump_write, }; diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c index 5756401fb15bb..6e67b42ca46d4 100644 --- a/drivers/oprofile/oprofilefs.c +++ b/drivers/oprofile/oprofilefs.c @@ -115,14 +115,14 @@ static int default_open(struct inode * inode, struct file * filp) } -static struct file_operations ulong_fops = { +static const struct file_operations ulong_fops = { .read = ulong_read_file, .write = ulong_write_file, .open = default_open, }; -static struct file_operations ulong_ro_fops = { +static const struct file_operations ulong_ro_fops = { .read = ulong_read_file, .open = default_open, }; @@ -182,7 +182,7 @@ static ssize_t atomic_read_file(struct file * file, char __user * buf, size_t co } -static struct file_operations atomic_ro_fops = { +static const struct file_operations atomic_ro_fops = { .read = atomic_read_file, .open = default_open, }; diff --git a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c index fe3f5f5365c55..894fdb9d44c0b 100644 --- a/drivers/parisc/ccio-dma.c +++ b/drivers/parisc/ccio-dma.c @@ -1091,7 +1091,7 @@ static int ccio_proc_info_open(struct inode *inode, struct file *file) return single_open(file, &ccio_proc_info, NULL); } -static struct file_operations ccio_proc_info_fops = { +static const struct file_operations ccio_proc_info_fops = { .owner = THIS_MODULE, .open = ccio_proc_info_open, .read = seq_read, @@ -1127,7 +1127,7 @@ static int ccio_proc_bitmap_open(struct inode *inode, struct file *file) return single_open(file, &ccio_proc_bitmap_info, NULL); } -static struct file_operations ccio_proc_bitmap_fops = { +static const struct file_operations ccio_proc_bitmap_fops = { .owner = THIS_MODULE, .open = ccio_proc_bitmap_open, .read = seq_read, diff --git a/drivers/parisc/eisa_eeprom.c b/drivers/parisc/eisa_eeprom.c index e13aafa70bf52..86e9c84a965e3 100644 --- a/drivers/parisc/eisa_eeprom.c +++ b/drivers/parisc/eisa_eeprom.c @@ -97,7 +97,7 @@ static int eisa_eeprom_release(struct inode *inode, struct file *file) /* * The various file operations we support. */ -static struct file_operations eisa_eeprom_fops = { +static const struct file_operations eisa_eeprom_fops = { .owner = THIS_MODULE, .llseek = eisa_eeprom_llseek, .read = eisa_eeprom_read, diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c index f1e7ccd5475bb..76a29dadd519d 100644 --- a/drivers/parisc/sba_iommu.c +++ b/drivers/parisc/sba_iommu.c @@ -1799,7 +1799,7 @@ sba_proc_open(struct inode *i, struct file *f) return single_open(f, &sba_proc_info, NULL); } -static struct file_operations sba_proc_fops = { +static const struct file_operations sba_proc_fops = { .owner = THIS_MODULE, .open = sba_proc_open, .read = seq_read, @@ -1831,7 +1831,7 @@ sba_proc_bitmap_open(struct inode *i, struct file *f) return single_open(f, &sba_proc_bitmap_info, NULL); } -static struct file_operations sba_proc_bitmap_fops = { +static const struct file_operations sba_proc_bitmap_fops = { .owner = THIS_MODULE, .open = sba_proc_bitmap_open, .read = seq_read, diff --git a/drivers/pci/hotplug/cpqphp_sysfs.c b/drivers/pci/hotplug/cpqphp_sysfs.c index 634f74d919d3d..a13abf55d7844 100644 --- a/drivers/pci/hotplug/cpqphp_sysfs.c +++ b/drivers/pci/hotplug/cpqphp_sysfs.c @@ -202,7 +202,7 @@ static int release(struct inode *inode, struct file *file) return 0; } -static struct file_operations debug_ops = { +static const struct file_operations debug_ops = { .owner = THIS_MODULE, .open = open, .llseek = lseek, diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c index 4a6760a3b31f2..ed87aa59f0b13 100644 --- a/drivers/pci/proc.c +++ b/drivers/pci/proc.c @@ -287,7 +287,7 @@ static int proc_bus_pci_release(struct inode *inode, struct file *file) } #endif /* HAVE_PCI_MMAP */ -static struct file_operations proc_bus_pci_operations = { +static const struct file_operations proc_bus_pci_operations = { .llseek = proc_bus_pci_lseek, .read = proc_bus_pci_read, .write = proc_bus_pci_write, @@ -456,7 +456,7 @@ static int proc_bus_pci_dev_open(struct inode *inode, struct file *file) { return seq_open(file, &proc_bus_pci_devices_op); } -static struct file_operations proc_bus_pci_dev_operations = { +static const struct file_operations proc_bus_pci_dev_operations = { .open = proc_bus_pci_dev_open, .read = seq_read, .llseek = seq_lseek, diff --git a/drivers/pcmcia/pcmcia_ioctl.c b/drivers/pcmcia/pcmcia_ioctl.c index 88494149e9101..27523c5f4dad5 100644 --- a/drivers/pcmcia/pcmcia_ioctl.c +++ b/drivers/pcmcia/pcmcia_ioctl.c @@ -765,7 +765,7 @@ free_out: /*====================================================================*/ -static struct file_operations ds_fops = { +static const struct file_operations ds_fops = { .owner = THIS_MODULE, .open = ds_open, .release = ds_release, diff --git a/drivers/pnp/isapnp/proc.c b/drivers/pnp/isapnp/proc.c index d21f3c1e72fc1..40b724ebe23bd 100644 --- a/drivers/pnp/isapnp/proc.c +++ b/drivers/pnp/isapnp/proc.c @@ -85,7 +85,7 @@ static ssize_t isapnp_proc_bus_read(struct file *file, char __user *buf, size_t return nbytes; } -static struct file_operations isapnp_proc_bus_file_operations = +static const struct file_operations isapnp_proc_bus_file_operations = { .llseek = isapnp_proc_bus_lseek, .read = isapnp_proc_bus_read, diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c index 82f2ac87ccd47..137330b8636b1 100644 --- a/drivers/rtc/rtc-dev.c +++ b/drivers/rtc/rtc-dev.c @@ -384,7 +384,7 @@ static int rtc_dev_fasync(int fd, struct file *file, int on) return fasync_helper(fd, file, on, &rtc->async_queue); } -static struct file_operations rtc_dev_fops = { +static const struct file_operations rtc_dev_fops = { .owner = THIS_MODULE, .llseek = no_llseek, .read = rtc_dev_read, diff --git a/drivers/rtc/rtc-proc.c b/drivers/rtc/rtc-proc.c index c272afd621732..1bd624fc685c8 100644 --- a/drivers/rtc/rtc-proc.c +++ b/drivers/rtc/rtc-proc.c @@ -96,7 +96,7 @@ static int rtc_proc_release(struct inode *inode, struct file *file) return res; } -static struct file_operations rtc_proc_fops = { +static const struct file_operations rtc_proc_fops = { .open = rtc_proc_open, .read = seq_read, .llseek = seq_lseek, diff --git a/drivers/s390/block/dasd_eer.c b/drivers/s390/block/dasd_eer.c index 6cedc914077e7..4b8a95fba1e5d 100644 --- a/drivers/s390/block/dasd_eer.c +++ b/drivers/s390/block/dasd_eer.c @@ -650,7 +650,7 @@ static unsigned int dasd_eer_poll(struct file *filp, poll_table *ptable) return mask; } -static struct file_operations dasd_eer_fops = { +static const struct file_operations dasd_eer_fops = { .open = &dasd_eer_open, .release = &dasd_eer_close, .read = &dasd_eer_read, diff --git a/drivers/s390/block/dasd_proc.c b/drivers/s390/block/dasd_proc.c index 8b7e11815d704..8b3b0f4a157c0 100644 --- a/drivers/s390/block/dasd_proc.c +++ b/drivers/s390/block/dasd_proc.c @@ -147,7 +147,7 @@ static int dasd_devices_open(struct inode *inode, struct file *file) return seq_open(file, &dasd_devices_seq_ops); } -static struct file_operations dasd_devices_file_ops = { +static const struct file_operations dasd_devices_file_ops = { .open = dasd_devices_open, .read = seq_read, .llseek = seq_lseek, diff --git a/drivers/s390/char/fs3270.c b/drivers/s390/char/fs3270.c index e1a746269c4cc..ef36f2132aa43 100644 --- a/drivers/s390/char/fs3270.c +++ b/drivers/s390/char/fs3270.c @@ -493,7 +493,7 @@ fs3270_close(struct inode *inode, struct file *filp) return 0; } -static struct file_operations fs3270_fops = { +static const struct file_operations fs3270_fops = { .owner = THIS_MODULE, /* owner */ .read = fs3270_read, /* read */ .write = fs3270_write, /* write */ diff --git a/drivers/s390/char/monreader.c b/drivers/s390/char/monreader.c index 3a1a958fb5f28..8df7b1323c053 100644 --- a/drivers/s390/char/monreader.c +++ b/drivers/s390/char/monreader.c @@ -547,7 +547,7 @@ static unsigned int mon_poll(struct file *filp, struct poll_table_struct *p) return 0; } -static struct file_operations mon_fops = { +static const struct file_operations mon_fops = { .owner = THIS_MODULE, .open = &mon_open, .release = &mon_close, diff --git a/drivers/s390/char/monwriter.c b/drivers/s390/char/monwriter.c index 9e451acc6491f..268598ef3efe9 100644 --- a/drivers/s390/char/monwriter.c +++ b/drivers/s390/char/monwriter.c @@ -255,7 +255,7 @@ out_error: return rc; } -static struct file_operations monwrite_fops = { +static const struct file_operations monwrite_fops = { .owner = THIS_MODULE, .open = &monwrite_open, .release = &monwrite_close, diff --git a/drivers/s390/char/tape_char.c b/drivers/s390/char/tape_char.c index 9faea04e11e9d..b830a8cbef787 100644 --- a/drivers/s390/char/tape_char.c +++ b/drivers/s390/char/tape_char.c @@ -39,7 +39,7 @@ static int tapechar_ioctl(struct inode *, struct file *, unsigned int, static long tapechar_compat_ioctl(struct file *, unsigned int, unsigned long); -static struct file_operations tape_fops = +static const struct file_operations tape_fops = { .owner = THIS_MODULE, .read = tapechar_read, diff --git a/drivers/s390/char/tape_proc.c b/drivers/s390/char/tape_proc.c index 655d375ab22bc..cea49f001f89c 100644 --- a/drivers/s390/char/tape_proc.c +++ b/drivers/s390/char/tape_proc.c @@ -109,7 +109,7 @@ static int tape_proc_open(struct inode *inode, struct file *file) return seq_open(file, &tape_proc_seq); } -static struct file_operations tape_proc_ops = +static const struct file_operations tape_proc_ops = { .open = tape_proc_open, .read = seq_read, diff --git a/drivers/s390/char/vmcp.c b/drivers/s390/char/vmcp.c index a420cd099041b..fce3dac5cb3ee 100644 --- a/drivers/s390/char/vmcp.c +++ b/drivers/s390/char/vmcp.c @@ -173,7 +173,7 @@ static long vmcp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) } } -static struct file_operations vmcp_fops = { +static const struct file_operations vmcp_fops = { .owner = THIS_MODULE, .open = &vmcp_open, .release = &vmcp_release, diff --git a/drivers/s390/char/vmlogrdr.c b/drivers/s390/char/vmlogrdr.c index 8432a76b961ed..b87d3b019936d 100644 --- a/drivers/s390/char/vmlogrdr.c +++ b/drivers/s390/char/vmlogrdr.c @@ -88,7 +88,7 @@ static int vmlogrdr_release(struct inode *, struct file *); static ssize_t vmlogrdr_read (struct file *filp, char __user *data, size_t count, loff_t * ppos); -static struct file_operations vmlogrdr_fops = { +static const struct file_operations vmlogrdr_fops = { .owner = THIS_MODULE, .open = vmlogrdr_open, .release = vmlogrdr_release, diff --git a/drivers/s390/char/vmwatchdog.c b/drivers/s390/char/vmwatchdog.c index 4b868f72fe89e..680b9b58b80ea 100644 --- a/drivers/s390/char/vmwatchdog.c +++ b/drivers/s390/char/vmwatchdog.c @@ -228,7 +228,7 @@ static ssize_t vmwdt_write(struct file *f, const char __user *buf, return count; } -static struct file_operations vmwdt_fops = { +static const struct file_operations vmwdt_fops = { .open = &vmwdt_open, .release = &vmwdt_close, .ioctl = &vmwdt_ioctl, diff --git a/drivers/s390/cio/blacklist.c b/drivers/s390/cio/blacklist.c index aa65df4dfcedf..ec0404874fada 100644 --- a/drivers/s390/cio/blacklist.c +++ b/drivers/s390/cio/blacklist.c @@ -364,7 +364,7 @@ cio_ignore_proc_open(struct inode *inode, struct file *file) return seq_open(file, &cio_ignore_proc_seq_ops); } -static struct file_operations cio_ignore_proc_fops = { +static const struct file_operations cio_ignore_proc_fops = { .open = cio_ignore_proc_open, .read = seq_read, .llseek = seq_lseek, diff --git a/drivers/s390/crypto/zcrypt_api.c b/drivers/s390/crypto/zcrypt_api.c index 2c785148d21e5..99761391f3409 100644 --- a/drivers/s390/crypto/zcrypt_api.c +++ b/drivers/s390/crypto/zcrypt_api.c @@ -807,7 +807,7 @@ static long zcrypt_compat_ioctl(struct file *filp, unsigned int cmd, /** * Misc device file operations. */ -static struct file_operations zcrypt_fops = { +static const struct file_operations zcrypt_fops = { .owner = THIS_MODULE, .read = zcrypt_read, .write = zcrypt_write, diff --git a/drivers/s390/net/qeth_proc.c b/drivers/s390/net/qeth_proc.c index faa768e592571..81f805cc5ee7a 100644 --- a/drivers/s390/net/qeth_proc.c +++ b/drivers/s390/net/qeth_proc.c @@ -161,7 +161,7 @@ qeth_procfile_open(struct inode *inode, struct file *file) return seq_open(file, &qeth_procfile_seq_ops); } -static struct file_operations qeth_procfile_fops = { +static const struct file_operations qeth_procfile_fops = { .owner = THIS_MODULE, .open = qeth_procfile_open, .read = seq_read, @@ -273,7 +273,7 @@ qeth_perf_procfile_open(struct inode *inode, struct file *file) return seq_open(file, &qeth_perf_procfile_seq_ops); } -static struct file_operations qeth_perf_procfile_fops = { +static const struct file_operations qeth_perf_procfile_fops = { .owner = THIS_MODULE, .open = qeth_perf_procfile_open, .read = seq_read, diff --git a/drivers/s390/scsi/zfcp_aux.c b/drivers/s390/scsi/zfcp_aux.c index 39a8852667909..1f9554e080139 100644 --- a/drivers/s390/scsi/zfcp_aux.c +++ b/drivers/s390/scsi/zfcp_aux.c @@ -60,7 +60,7 @@ static long zfcp_cfdc_dev_ioctl(struct file *, unsigned int, unsigned long); _IOWR(ZFCP_CFDC_IOC_MAGIC, 0, struct zfcp_cfdc_sense_data) -static struct file_operations zfcp_cfdc_fops = { +static const struct file_operations zfcp_cfdc_fops = { .unlocked_ioctl = zfcp_cfdc_dev_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl = zfcp_cfdc_dev_ioctl