constify various _ops structures for 2.6.32 v1
Subsystems (85)
PATCH 28/31 Constify struct super_operations for 2.6.32 v1
In reply to Emese RevfyFrom: Emese Revfy <[email protected]>
Constify struct super_operations.
--- include/linux/fs.h | 44 ++++++++++++++++++++++---------------------- 1 files changed, 22 insertions(+), 22 deletions(-)
include/linux/fs.h +22 -22
@@ -1553,30 +1553,30 @@ extern ssize_t vfs_writev(struct file *, const struct iovec __user *, unsigned long, loff_t *);struct super_operations { -struct inode *(*alloc_inode)(struct super_block *sb); -void (*destroy_inode)(struct inode *); - -void (*dirty_inode) (struct inode *); -int (*write_inode) (struct inode *,int ); -void (*drop_inode) (struct inode *); -void (*delete_inode) (struct inode *); -void (*put_super) (struct super_block *); -void (*write_super) (struct super_block *); -int (*sync_fs)(struct super_block *sb,int wait); -int (*freeze_fs) (struct super_block *); -int (*unfreeze_fs) (struct super_block *); -int (*statfs) (struct dentry *,struct kstatfs *); -int (*remount_fs) (struct super_block *,int *,char *); -void (*clear_inode) (struct inode *); -void (*umount_begin) (struct super_block *); - -int (*show_options)(struct seq_file *,struct vfsmount *); -int (*show_stats)(struct seq_file *,struct vfsmount *); +struct inode *(*const alloc_inode)(struct super_block *sb); +void (*const destroy_inode)(struct inode *); + +void (*const dirty_inode) (struct inode *); +int (*const write_inode) (struct inode *,int ); +void (*const drop_inode) (struct inode *); +void (*const delete_inode) (struct inode *); +void (*const put_super) (struct super_block *); +void (*const write_super) (struct super_block *); +int (*const sync_fs)(struct super_block *sb,int wait); +int (*const freeze_fs) (struct super_block *); +int (*const unfreeze_fs) (struct super_block *); +int (*const statfs) (struct dentry *,struct kstatfs *); +int (*const remount_fs) (struct super_block *,int *,char *); +void (*const clear_inode) (struct inode *); +void (*const umount_begin) (struct super_block *); + +int (*const show_options)(struct seq_file *,struct vfsmount *); +int (*const show_stats)(struct seq_file *,struct vfsmount *);#ifdef CONFIG_QUOTA -ssize_t (*quota_read)(struct super_block *,int ,char *,size_t ,loff_t ); -ssize_t (*quota_write)(struct super_block *,int ,const char *,size_t ,loff_t ); +ssize_t (*const quota_read)(struct super_block *,int ,char *,size_t ,loff_t ); +ssize_t (*const quota_write)(struct super_block *,int ,const char *,size_t ,loff_t );#endif -int (*bdev_try_to_free_page)(struct super_block *,struct page *,gfp_t ); +int (*const bdev_try_to_free_page)(struct super_block *,struct page *,gfp_t ); };/*
Al Viro
maintainerRe: [PATCH 28/31] Constify struct super_operations for 2.6.32 v1
Quoted 3 lines · Emese Revfy
From: Emese Revfy <[email protected]>
Constify struct
super_operations.
What the _hell_ is that?
Quoted 1 line
+ struct inode *(* const alloc_inode)(struct
super_block*sb);
This is ugly and has all marks of cargo-cult patches. NAKed at least until you give exceptionally good reasons for doing that.
Re: [PATCH 28/31] Constify struct super_operations for 2.6.32 v1
Quoted 11 lines · Al Viro
Quoted 3 lines · Emese Revfy
From: Emese Revfy <[email protected]>
Constify struct
super_operations.What the _hell_ is that?
Quoted 1 line
+ struct inode *(* const alloc_inode)(struct
super_block*sb);This is ugly and has all marks of cargo-cult patches. NAKed at least until you give exceptionally good reasons for doing that.
My idea was that since each instance of super_operations is const, I figured that there is an implicit policy of not wanting writable super_operations structures in the kernel. If this is actually the case then my patch makes the compiler enforce this policy, otherwise please ignore it.
--
Emese
PATCH 29/31 Constify struct sysfs_ops for 2.6.32 v1
In reply to Emese RevfyFrom: Emese Revfy <[email protected]>
Constify struct sysfs_ops.
--- arch/ia64/kernel/topology.c | 2 +- arch/powerpc/kernel/cacheinfo.c | 2 +- arch/sh/kernel/cpu/sh4/sq.c | 2 +- arch/x86/kernel/cpu/intel_cacheinfo.c | 2 +- arch/x86/kernel/cpu/mcheck/mce_amd.c | 2 +- block/blk-integrity.c | 2 +- block/blk-sysfs.c | 2 +- block/elevator.c | 2 +- drivers/base/bus.c | 4 ++-- drivers/base/class.c | 2 +- drivers/base/core.c | 2 +- drivers/base/sys.c | 4 ++-- drivers/block/pktcdvd.c | 2 +- drivers/cpufreq/cpufreq.c | 2 +- drivers/cpuidle/sysfs.c | 4 ++-- drivers/dma/ioat/dma.c | 2 +- drivers/dma/ioat/dma.h | 2 +- drivers/edac/edac_device_sysfs.c | 6 +++--- drivers/edac/edac_mc_sysfs.c | 4 ++-- drivers/edac/edac_pci_sysfs.c | 4 ++-- drivers/firmware/edd.c | 2 +- drivers/firmware/efivars.c | 2 +- drivers/firmware/iscsi_ibft.c | 2 +- drivers/firmware/memmap.c | 2 +- drivers/gpu/drm/ttm/ttm_bo.c | 2 +- drivers/gpu/drm/ttm/ttm_memory.c | 2 +- drivers/infiniband/core/cm.c | 2 +- drivers/infiniband/core/sysfs.c | 2 +- drivers/md/dm-sysfs.c | 2 +- drivers/md/md.c | 4 ++-- drivers/net/ibmveth.c | 2 +- drivers/net/iseries_veth.c | 4 ++-- drivers/parisc/pdc_stable.c | 2 +- drivers/pci/hotplug/fakephp.c | 2 +- drivers/pci/slot.c | 2 +- drivers/uio/uio.c | 4 ++-- drivers/uwb/wlp/sysfs.c | 3 +-- drivers/xen/sys-hypervisor.c | 2 +- fs/btrfs/sysfs.c | 4 ++-- fs/dlm/lockspace.c | 2 +- fs/ext4/super.c | 2 +- fs/gfs2/sys.c | 2 +- fs/ocfs2/cluster/masklog.c | 2 +- fs/sysfs/file.c | 8 ++++---- include/linux/kobject.h | 4 ++-- include/linux/sysfs.h | 4 ++-- kernel/params.c | 2 +- lib/kobject.c | 2 +- mm/slub.c | 2 +- net/bridge/br_private.h | 2 +- net/bridge/br_sysfs_if.c | 2 +- samples/kobject/kset-example.c | 2 +- 52 files changed, 68 insertions(+), 69 deletions(-)
arch/ia64/kernel/topology.c +1 -1
@@ -282,7 +282,7 @@ static ssize_t cache_show(struct kobject * kobj, struct attribute * attr, char *return ret; } -static struct sysfs_ops cache_sysfs_ops = { +static const struct sysfs_ops cache_sysfs_ops = { .show = cache_show };
arch/powerpc/kernel/cacheinfo.c +1 -1
@@ -642,7 +642,7 @@ static struct kobj_attribute *cache_index_opt_attrs[] = { &cache_assoc_attr, }; -static struct sysfs_ops cache_index_ops = { +static const struct sysfs_ops cache_index_ops = { .show = cache_index_show, };
arch/sh/kernel/cpu/sh4/sq.c +1 -1
@@ -327,7 +327,7 @@ static struct attribute *sq_sysfs_attrs[] = { NULL, }; -static struct sysfs_ops sq_sysfs_ops = { +static const struct sysfs_ops sq_sysfs_ops = { .show = sq_sysfs_show, .store = sq_sysfs_store, };
arch/x86/kernel/cpu/intel_cacheinfo.c +1 -1
@@ -860,7 +860,7 @@ static ssize_t store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops sysfs_ops = { +static const struct sysfs_ops sysfs_ops = { .show = show, .store = store, };
arch/x86/kernel/cpu/mcheck/mce_amd.c +1 -1
@@ -388,7 +388,7 @@ static ssize_t store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops threshold_ops = { +static const struct sysfs_ops threshold_ops = { .show = show, .store = store, };
block/blk-integrity.c +1 -1
@@ -278,7 +278,7 @@ static struct attribute *integrity_attrs[] = { NULL, }; -static struct sysfs_ops integrity_ops = { +static const struct sysfs_ops integrity_ops = { .show = &integrity_attr_show, .store = &integrity_attr_store, };
block/blk-sysfs.c +1 -1
@@ -414,7 +414,7 @@ static void blk_release_queue(struct kobject *kobj)kmem_cache_free (blk_requestq_cachep, q); } -static struct sysfs_ops queue_sysfs_ops = { +static const struct sysfs_ops queue_sysfs_ops = { .show = queue_attr_show, .store = queue_attr_store, };
block/elevator.c +1 -1
@@ -889,7 +889,7 @@ elv_attr_store(struct kobject *kobj, struct attribute *attr,return error; } -static struct sysfs_ops elv_sysfs_ops = { +static const struct sysfs_ops elv_sysfs_ops = { .show = elv_attr_show, .store = elv_attr_store, };
drivers/base/bus.c +2 -2
@@ -70,7 +70,7 @@ static ssize_t drv_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops driver_sysfs_ops = { +static const struct sysfs_ops driver_sysfs_ops = { .show = drv_attr_show, .store = drv_attr_store, };
@@ -115,7 +115,7 @@ static ssize_t bus_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops bus_sysfs_ops = { +static const struct sysfs_ops bus_sysfs_ops = { .show = bus_attr_show, .store = bus_attr_store, };
drivers/base/class.c +1 -1
@@ -61,7 +61,7 @@ static void class_release(struct kobject *kobj) "be careful\n", class->name); } -static struct sysfs_ops class_sysfs_ops = { +static const struct sysfs_ops class_sysfs_ops = { .show = class_attr_show, .store = class_attr_store, };
drivers/base/core.c +1 -1
@@ -93,7 +93,7 @@ static ssize_t dev_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops dev_sysfs_ops = { +static const struct sysfs_ops dev_sysfs_ops = { .show = dev_attr_show, .store = dev_attr_store, };
drivers/base/sys.c +2 -2
@@ -54,7 +54,7 @@ sysdev_store(struct kobject *kobj, struct attribute *attr,return -EIO ; } -static struct sysfs_ops sysfs_ops = { +static const struct sysfs_ops sysfs_ops = { .show = sysdev_show, .store = sysdev_store, };
@@ -104,7 +104,7 @@ static ssize_t sysdev_class_store(struct kobject *kobj, struct attribute *attr,return -EIO ; } -static struct sysfs_ops sysfs_class_ops = { +static const struct sysfs_ops sysfs_class_ops = { .show = sysdev_class_show, .store = sysdev_class_store, };
drivers/block/pktcdvd.c +1 -1
@@ -284,7 +284,7 @@ static ssize_t kobj_pkt_store(struct kobject *kobj,return len; } -static struct sysfs_ops kobj_pkt_ops = { +static const struct sysfs_ops kobj_pkt_ops = { .show = kobj_pkt_show, .store = kobj_pkt_store };
drivers/cpufreq/cpufreq.c +1 -1
@@ -750,7 +750,7 @@ static void cpufreq_sysfs_release(struct kobject *kobj)complete (&policy->kobj_unregister); } -static struct sysfs_ops sysfs_ops = { +static const struct sysfs_ops sysfs_ops = { .show = show, .store = store, };
drivers/cpuidle/sysfs.c +2 -2
@@ -191,7 +191,7 @@ static ssize_t cpuidle_store(struct kobject * kobj, struct attribute * attr,return ret; } -static struct sysfs_ops cpuidle_sysfs_ops = { +static const struct sysfs_ops cpuidle_sysfs_ops = { .show = cpuidle_show, .store = cpuidle_store, };
@@ -277,7 +277,7 @@ static ssize_t cpuidle_state_show(struct kobject * kobj,return ret; } -static struct sysfs_ops cpuidle_state_sysfs_ops = { +static const struct sysfs_ops cpuidle_state_sysfs_ops = { .show = cpuidle_state_show, };
drivers/dma/ioat/dma.c +1 -1
@@ -1146,7 +1146,7 @@ ioat_attr_show(struct kobject *kobj, struct attribute *attr, char *page)return entry->show (&chan->common, page); } -struct sysfs_ops ioat_sysfs_ops = { +const struct sysfs_ops ioat_sysfs_ops = { .show = ioat_attr_show, };
drivers/dma/ioat/dma.h +1 -1
@@ -329,7 +329,7 @@ bool ioat_cleanup_preamble(struct ioat_chan_common *chan, unsigned long *phys_complete);void ioat_kobject_add (struct ioatdma_device *device,struct kobj_type *type);void ioat_kobject_del (struct ioatdma_device *device); -extern struct sysfs_ops ioat_sysfs_ops; +extern const struct sysfs_ops ioat_sysfs_ops;extern struct ioat_sysfs_entry ioat_version_attr;extern struct ioat_sysfs_entry ioat_cap_attr;#endif /* IOATDMA_H */
drivers/edac/edac_device_sysfs.c +3 -3
@@ -137,7 +137,7 @@ static ssize_t edac_dev_ctl_info_store(struct kobject *kobj, }/* edac_dev file operations for an 'ctl_info' */ -static struct sysfs_ops device_ctl_info_ops = { +static const struct sysfs_ops device_ctl_info_ops = { .show = edac_dev_ctl_info_show, .store = edac_dev_ctl_info_store };
@@ -373,7 +373,7 @@ static ssize_t edac_dev_instance_store(struct kobject *kobj, }/* edac_dev file operations for an 'instance' */ -static struct sysfs_ops device_instance_ops = { +static const struct sysfs_ops device_instance_ops = { .show = edac_dev_instance_show, .store = edac_dev_instance_store };
@@ -476,7 +476,7 @@ static ssize_t edac_dev_block_store(struct kobject *kobj, }/* edac_dev file operations for a 'block' */ -static struct sysfs_ops device_block_ops = { +static const struct sysfs_ops device_block_ops = { .show = edac_dev_block_show, .store = edac_dev_block_store };
drivers/edac/edac_mc_sysfs.c +2 -2
@@ -245,7 +245,7 @@ static ssize_t csrowdev_store(struct kobject *kobj, struct attribute *attr,return -EIO ; } -static struct sysfs_ops csrowfs_ops = { +static const struct sysfs_ops csrowfs_ops = { .show = csrowdev_show, .store = csrowdev_store };
@@ -575,7 +575,7 @@ static ssize_t mcidev_store(struct kobject *kobj, struct attribute *attr, }/* Intermediate show/store table */ -static struct sysfs_ops mci_ops = { +static const struct sysfs_ops mci_ops = { .show = mcidev_show, .store = mcidev_store };
drivers/edac/edac_pci_sysfs.c +2 -2
@@ -121,7 +121,7 @@ static ssize_t edac_pci_instance_store(struct kobject *kobj, }/* fs_ops table */ -static struct sysfs_ops pci_instance_ops = { +static const struct sysfs_ops pci_instance_ops = { .show = edac_pci_instance_show, .store = edac_pci_instance_store };
@@ -261,7 +261,7 @@ static ssize_t edac_pci_dev_store(struct kobject *kobj,return -EIO ; } -static struct sysfs_ops edac_pci_sysfs_ops = { +static const struct sysfs_ops edac_pci_sysfs_ops = { .show = edac_pci_dev_show, .store = edac_pci_dev_store };
drivers/firmware/edd.c +1 -1
@@ -122,7 +122,7 @@ edd_attr_show(struct kobject * kobj, struct attribute *attr, char *buf)return ret; } -static struct sysfs_ops edd_attr_ops = { +static const struct sysfs_ops edd_attr_ops = { .show = edd_attr_show, };
drivers/firmware/efivars.c +1 -1
@@ -362,7 +362,7 @@ static ssize_t efivar_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops efivar_attr_ops = { +static const struct sysfs_ops efivar_attr_ops = { .show = efivar_attr_show, .store = efivar_attr_store, };
drivers/firmware/iscsi_ibft.c +1 -1
@@ -525,7 +525,7 @@ static ssize_t ibft_show_attribute(struct kobject *kobj,return ret; } -static struct sysfs_ops ibft_attr_ops = { +static const struct sysfs_ops ibft_attr_ops = { .show = ibft_show_attribute, };
drivers/firmware/memmap.c +1 -1
@@ -74,7 +74,7 @@ static struct attribute *def_attrs[] = { NULL }; -static struct sysfs_ops memmap_attr_ops = { +static const struct sysfs_ops memmap_attr_ops = { .show = memmap_attr_show, };
drivers/gpu/drm/ttm/ttm_bo.c +1 -1
@@ -67,7 +67,7 @@ static struct attribute *ttm_bo_global_attrs[] = { NULL }; -static struct sysfs_ops ttm_bo_global_ops = { +static const struct sysfs_ops ttm_bo_global_ops = { .show = &ttm_bo_global_show };
drivers/gpu/drm/ttm/ttm_memory.c +1 -1
@@ -152,7 +152,7 @@ static struct attribute *ttm_mem_zone_attrs[] = { NULL }; -static struct sysfs_ops ttm_mem_zone_ops = { +static const struct sysfs_ops ttm_mem_zone_ops = { .show = &ttm_mem_zone_show, .store = &ttm_mem_zone_store };
drivers/infiniband/core/cm.c +1 -1
@@ -3597,7 +3597,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr, atomic_long_read(&group->counter[cm_attr->index])); } -static struct sysfs_ops cm_counter_ops = { +static const struct sysfs_ops cm_counter_ops = { .show = cm_show_counter };
drivers/infiniband/core/sysfs.c +1 -1
@@ -79,7 +79,7 @@ static ssize_t port_attr_show(struct kobject *kobj,return port_attr->show (p, port_attr, buf); } -static struct sysfs_ops port_sysfs_ops = { +static const struct sysfs_ops port_sysfs_ops = { .show = port_attr_show };
drivers/md/dm-sysfs.c +1 -1
@@ -75,7 +75,7 @@ static struct attribute *dm_attrs[] = { NULL, }; -static struct sysfs_ops dm_sysfs_ops = { +static const struct sysfs_ops dm_sysfs_ops = { .show = dm_attr_show, };
drivers/md/md.c +2 -2
@@ -2505,7 +2505,7 @@ static void rdev_free(struct kobject *ko)mdk_rdev_t *rdev =container_of (ko, mdk_rdev_t, kobj);kfree (rdev); } -static struct sysfs_ops rdev_sysfs_ops = { +static const struct sysfs_ops rdev_sysfs_ops = { .show = rdev_attr_show, .store = rdev_attr_store, };
@@ -3875,7 +3875,7 @@ static void md_free(struct kobject *ko)kfree (mddev); } -static struct sysfs_ops md_sysfs_ops = { +static const struct sysfs_ops md_sysfs_ops = { .show = md_attr_show, .store = md_attr_store, };
drivers/net/ibmveth.c +1 -1
@@ -1577,7 +1577,7 @@ static struct attribute * veth_pool_attrs[] = { NULL, }; -static struct sysfs_ops veth_pool_ops = { +static const struct sysfs_ops veth_pool_ops = { .show = veth_pool_show, .store = veth_pool_store, };
drivers/net/iseries_veth.c +2 -2
@@ -384,7 +384,7 @@ static struct attribute *veth_cnx_default_attrs[] = { NULL }; -static struct sysfs_ops veth_cnx_sysfs_ops = { +static const struct sysfs_ops veth_cnx_sysfs_ops = { .show = veth_cnx_attribute_show };
@@ -441,7 +441,7 @@ static struct attribute *veth_port_default_attrs[] = { NULL }; -static struct sysfs_ops veth_port_sysfs_ops = { +static const struct sysfs_ops veth_port_sysfs_ops = { .show = veth_port_attribute_show };
drivers/parisc/pdc_stable.c +1 -1
@@ -481,7 +481,7 @@ pdcspath_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops pdcspath_attr_ops = { +static const struct sysfs_ops pdcspath_attr_ops = { .show = pdcspath_attr_show, .store = pdcspath_attr_store, };
drivers/pci/hotplug/fakephp.c +1 -1
@@ -73,7 +73,7 @@ static void legacy_release(struct kobject *kobj) }static struct kobj_type legacy_ktype = { - .sysfs_ops = &(struct sysfs_ops ){ + .sysfs_ops = &(const struct sysfs_ops ){ .store = legacy_store, .show = legacy_show }, .release = &legacy_release,
drivers/pci/slot.c +1 -1
@@ -29,7 +29,7 @@ static ssize_t pci_slot_attr_store(struct kobject *kobj,return attribute->store ? attribute->store (slot, buf, len) : -EIO ; } -static struct sysfs_ops pci_slot_sysfs_ops = { +static const struct sysfs_ops pci_slot_sysfs_ops = { .show = pci_slot_attr_show, .store = pci_slot_attr_store, };
drivers/uio/uio.c +2 -2
@@ -129,7 +129,7 @@ static ssize_t map_type_show(struct kobject *kobj, struct attribute *attr,return entry->show (mem, buf); } -static struct sysfs_ops map_sysfs_ops = { +static const struct sysfs_ops map_sysfs_ops = { .show = map_type_show, };
@@ -217,7 +217,7 @@ static ssize_t portio_type_show(struct kobject *kobj, struct attribute *attr,return entry->show (port, buf); } -static struct sysfs_ops portio_sysfs_ops = { +static const struct sysfs_ops portio_sysfs_ops = { .show = portio_type_show, };
drivers/uwb/wlp/sysfs.c +1 -2
@@ -615,8 +615,7 @@ ssize_t wlp_wss_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static -struct sysfs_ops wss_sysfs_ops = { +static const struct sysfs_ops wss_sysfs_ops = { .show = wlp_wss_attr_show, .store = wlp_wss_attr_store, };
drivers/xen/sys-hypervisor.c +1 -1
@@ -425,7 +425,7 @@ static ssize_t hyp_sysfs_store(struct kobject *kobj,return 0 ; } -static struct sysfs_ops hyp_sysfs_ops = { +static const struct sysfs_ops hyp_sysfs_ops = { .show = hyp_sysfs_show, .store = hyp_sysfs_store, };
fs/btrfs/sysfs.c +2 -2
@@ -164,12 +164,12 @@ static void btrfs_root_release(struct kobject *kobj)complete (&root->kobj_unregister); } -static struct sysfs_ops btrfs_super_attr_ops = { +static const struct sysfs_ops btrfs_super_attr_ops = { .show = btrfs_super_attr_show, .store = btrfs_super_attr_store, }; -static struct sysfs_ops btrfs_root_attr_ops = { +static const struct sysfs_ops btrfs_root_attr_ops = { .show = btrfs_root_attr_show, .store = btrfs_root_attr_store, };
fs/dlm/lockspace.c +1 -1
@@ -148,7 +148,7 @@ static void lockspace_kobj_release(struct kobject *k)kfree (ls); } -static struct sysfs_ops dlm_attr_ops = { +static const struct sysfs_ops dlm_attr_ops = { .show = dlm_attr_show, .store = dlm_attr_store, };
fs/ext4/super.c +1 -1
@@ -2251,7 +2251,7 @@ static void ext4_sb_release(struct kobject *kobj) } -static struct sysfs_ops ext4_attr_ops = { +static const struct sysfs_ops ext4_attr_ops = { .show = ext4_attr_show, .store = ext4_attr_store, };
fs/gfs2/sys.c +1 -1
@@ -49,7 +49,7 @@ static ssize_t gfs2_attr_store(struct kobject *kobj, struct attribute *attr,return a->store ? a->store (sdp, buf, len) : len; } -static struct sysfs_ops gfs2_attr_ops = { +static const struct sysfs_ops gfs2_attr_ops = { .show = gfs2_attr_show, .store = gfs2_attr_store, };
fs/ocfs2/cluster/masklog.c +1 -1
@@ -135,7 +135,7 @@ static ssize_t mlog_store(struct kobject *obj, struct attribute *attr,return mlog_mask_store (mlog_attr->mask, buf, count); } -static struct sysfs_ops mlog_attr_ops = { +static const struct sysfs_ops mlog_attr_ops = { .show = mlog_show, .store = mlog_store, };
fs/sysfs/file.c +4 -4
@@ -53,7 +53,7 @@ struct sysfs_buffer {size_t count;loff_t pos;char * page; -struct sysfs_ops * ops; +const struct sysfs_ops * ops;struct mutex mutex;int needs_read_fill;int event;
@@ -75,7 +75,7 @@ static int fill_read_buffer(struct dentry * dentry, struct sysfs_buffer * buffer {struct sysfs_dirent *attr_sd = dentry->d_fsdata;struct kobject *kobj = attr_sd->s_parent->s_dir.kobj; -struct sysfs_ops * ops = buffer->ops; +const struct sysfs_ops * ops = buffer->ops;int ret =0 ;ssize_t count;
@@ -199,7 +199,7 @@ flush_write_buffer(struct dentry * dentry, struct sysfs_buffer * buffer, size_t {struct sysfs_dirent *attr_sd = dentry->d_fsdata;struct kobject *kobj = attr_sd->s_parent->s_dir.kobj; -struct sysfs_ops * ops = buffer->ops; +const struct sysfs_ops * ops = buffer->ops;int rc;/* need attr_sd for attr and ops, its parent for kobj */
@@ -335,7 +335,7 @@ static int sysfs_open_file(struct inode *inode, struct file *file)struct sysfs_dirent *attr_sd = file->f_path.dentry->d_fsdata;struct kobject *kobj = attr_sd->s_parent->s_dir.kobj;struct sysfs_buffer *buffer; -struct sysfs_ops *ops; +const struct sysfs_ops *ops;int error = -EACCES ;char *p;
include/linux/kobject.h +2 -2
@@ -106,7 +106,7 @@ extern char *kobject_get_path(struct kobject *kobj, gfp_t flag);struct kobj_type {void (*release)(struct kobject *kobj); -struct sysfs_ops *sysfs_ops; +const struct sysfs_ops *sysfs_ops;struct attribute **default_attrs; };
@@ -132,7 +132,7 @@ struct kobj_attribute { const char *buf, size_t count); }; -extern struct sysfs_ops kobj_sysfs_ops; +extern const struct sysfs_ops kobj_sysfs_ops;/** * struct kset - a set of kobjects of a specific type, belonging to a specific subsystem.
include/linux/sysfs.h +2 -2
@@ -75,8 +75,8 @@ struct bin_attribute { };struct sysfs_ops { -ssize_t (*show)(struct kobject *,struct attribute *,char *); -ssize_t (*store)(struct kobject *,struct attribute *,const char *,size_t ); +ssize_t (*const show)(struct kobject *,struct attribute *,char *); +ssize_t (*const store)(struct kobject *,struct attribute *,const char *,size_t ); };struct sysfs_dirent ;
kernel/params.c +1 -1
@@ -725,7 +725,7 @@ static ssize_t module_attr_store(struct kobject *kobj,return ret; } -static struct sysfs_ops module_sysfs_ops = { +static const struct sysfs_ops module_sysfs_ops = { .show = module_attr_show, .store = module_attr_store, };
lib/kobject.c +1 -1
@@ -700,7 +700,7 @@ static ssize_t kobj_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -struct sysfs_ops kobj_sysfs_ops = { +const struct sysfs_ops kobj_sysfs_ops = { .show = kobj_attr_show, .store = kobj_attr_store, };
mm/slub.c +1 -1
@@ -4503,7 +4503,7 @@ static void kmem_cache_release(struct kobject *kobj)kfree (s); } -static struct sysfs_ops slab_sysfs_ops = { +static const struct sysfs_ops slab_sysfs_ops = { .show = slab_attr_show, .store = slab_attr_store, };
net/bridge/br_private.h +1 -1
@@ -254,7 +254,7 @@ extern void br_ifinfo_notify(int event, struct net_bridge_port *port);#ifdef CONFIG_SYSFS /* br_sysfs_if.c */ -extern struct sysfs_ops brport_sysfs_ops; +extern const struct sysfs_ops brport_sysfs_ops;extern int br_sysfs_addif (struct net_bridge_port *p);/* br_sysfs_br.c */
net/bridge/br_sysfs_if.c +1 -1
@@ -220,7 +220,7 @@ static ssize_t brport_store(struct kobject * kobj,return ret; } -struct sysfs_ops brport_sysfs_ops = { +const struct sysfs_ops brport_sysfs_ops = { .show = brport_show, .store = brport_store, };
samples/kobject/kset-example.c +1 -1
@@ -87,7 +87,7 @@ static ssize_t foo_attr_store(struct kobject *kobj, }/* Our custom sysfs_ops that we will associate with our ktype later on */ -static struct sysfs_ops foo_sysfs_ops = { +static const struct sysfs_ops foo_sysfs_ops = { .show = foo_attr_show, .store = foo_attr_store, };
Re: [PATCH 29/31] Constify struct sysfs_ops for 2.6.32 v1
Added [email protected] to CC.
Quoted 873 lines
From: Emese Revfy <[email protected]>
Constify struct
sysfs_ops.Signed-off-by Emese Revfy <[email protected]>--- arch/ia64/kernel/topology.c | 2 +- arch/powerpc/kernel/cacheinfo.c | 2 +- arch/sh/kernel/cpu/sh4/sq.c | 2 +- arch/x86/kernel/cpu/intel_cacheinfo.c | 2 +- arch/x86/kernel/cpu/mcheck/mce_amd.c | 2 +- block/blk-integrity.c | 2 +- block/blk-sysfs.c | 2 +- block/elevator.c | 2 +- drivers/base/bus.c | 4 ++-- drivers/base/class.c | 2 +- drivers/base/core.c | 2 +- drivers/base/sys.c | 4 ++-- drivers/block/pktcdvd.c | 2 +- drivers/cpufreq/cpufreq.c | 2 +- drivers/cpuidle/sysfs.c | 4 ++-- drivers/dma/ioat/dma.c | 2 +- drivers/dma/ioat/dma.h | 2 +- drivers/edac/edac_device_sysfs.c | 6 +++--- drivers/edac/edac_mc_sysfs.c | 4 ++-- drivers/edac/edac_pci_sysfs.c | 4 ++-- drivers/firmware/edd.c | 2 +- drivers/firmware/efivars.c | 2 +- drivers/firmware/iscsi_ibft.c | 2 +- drivers/firmware/memmap.c | 2 +- drivers/gpu/drm/ttm/ttm_bo.c | 2 +- drivers/gpu/drm/ttm/ttm_memory.c | 2 +- drivers/infiniband/core/cm.c | 2 +- drivers/infiniband/core/sysfs.c | 2 +- drivers/md/dm-sysfs.c | 2 +- drivers/md/md.c | 4 ++-- drivers/net/ibmveth.c | 2 +- drivers/net/iseries_veth.c | 4 ++-- drivers/parisc/pdc_stable.c | 2 +- drivers/pci/hotplug/fakephp.c | 2 +- drivers/pci/slot.c | 2 +- drivers/uio/uio.c | 4 ++-- drivers/uwb/wlp/sysfs.c | 3 +-- drivers/xen/sys-hypervisor.c | 2 +- fs/btrfs/sysfs.c | 4 ++-- fs/dlm/lockspace.c | 2 +- fs/ext4/super.c | 2 +- fs/gfs2/sys.c | 2 +- fs/ocfs2/cluster/masklog.c | 2 +- fs/sysfs/file.c | 8 ++++---- include/linux/kobject.h | 4 ++-- include/linux/sysfs.h | 4 ++-- kernel/params.c | 2 +- lib/kobject.c | 2 +- mm/slub.c | 2 +- net/bridge/br_private.h | 2 +- net/bridge/br_sysfs_if.c | 2 +- samples/kobject/kset-example.c | 2 +- 52 files changed, 68 insertions(+), 69 deletions(-)arch/ia64/kernel/topology.c +1
-1@@ -282,7 +282,7 @@ static ssize_t cache_show(struct kobject * kobj, struct attribute * attr, char *return ret; } -static struct sysfs_ops cache_sysfs_ops = { +static const struct sysfs_ops cache_sysfs_ops = { .show = cache_show };arch/powerpc/kernel/cacheinfo.c +1
-1@@ -642,7 +642,7 @@ static struct kobj_attribute *cache_index_opt_attrs[] = { &cache_assoc_attr, }; -static struct sysfs_ops cache_index_ops = { +static const struct sysfs_ops cache_index_ops = { .show = cache_index_show, };arch/sh/kernel/cpu/sh4/sq.c +1
-1@@ -327,7 +327,7 @@ static struct attribute *sq_sysfs_attrs[] = { NULL, }; -static struct sysfs_ops sq_sysfs_ops = { +static const struct sysfs_ops sq_sysfs_ops = { .show = sq_sysfs_show, .store = sq_sysfs_store, };arch/x86/kernel/cpu/intel_cacheinfo.c +1
-1@@ -860,7 +860,7 @@ static ssize_t store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops sysfs_ops = { +static const struct sysfs_ops sysfs_ops = { .show = show, .store = store, };arch/x86/kernel/cpu/mcheck/mce_amd.c +1
-1@@ -388,7 +388,7 @@ static ssize_t store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops threshold_ops = { +static const struct sysfs_ops threshold_ops = { .show = show, .store = store, };block/blk-integrity.c +1
-1@@ -278,7 +278,7 @@ static struct attribute *integrity_attrs[] = { NULL, }; -static struct sysfs_ops integrity_ops = { +static const struct sysfs_ops integrity_ops = { .show = &integrity_attr_show, .store = &integrity_attr_store, };block/blk-sysfs.c +1
-1@@ -414,7 +414,7 @@ static void blk_release_queue(struct kobject *kobj)kmem_cache_free (blk_requestq_cachep, q); } -static struct sysfs_ops queue_sysfs_ops = { +static const struct sysfs_ops queue_sysfs_ops = { .show = queue_attr_show, .store = queue_attr_store, };block/elevator.c +1
-1@@ -889,7 +889,7 @@ elv_attr_store(struct kobject *kobj, struct attribute *attr,return error; } -static struct sysfs_ops elv_sysfs_ops = { +static const struct sysfs_ops elv_sysfs_ops = { .show = elv_attr_show, .store = elv_attr_store, };drivers/base/bus.c +2
-2@@ -70,7 +70,7 @@ static ssize_t drv_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops driver_sysfs_ops = { +static const struct sysfs_ops driver_sysfs_ops = { .show = drv_attr_show, .store = drv_attr_store, };@@ -115,7 +115,7 @@ static ssize_t bus_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops bus_sysfs_ops = { +static const struct sysfs_ops bus_sysfs_ops = { .show = bus_attr_show, .store = bus_attr_store, };drivers/base/class.c +1
-1@@ -61,7 +61,7 @@ static void class_release(struct kobject *kobj) "be careful\n", class->name); } -static struct sysfs_ops class_sysfs_ops = { +static const struct sysfs_ops class_sysfs_ops = { .show = class_attr_show, .store = class_attr_store, };drivers/base/core.c +1
-1@@ -93,7 +93,7 @@ static ssize_t dev_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops dev_sysfs_ops = { +static const struct sysfs_ops dev_sysfs_ops = { .show = dev_attr_show, .store = dev_attr_store, };drivers/base/sys.c +2
-2@@ -54,7 +54,7 @@ sysdev_store(struct kobject *kobj, struct attribute *attr,return -EIO ; } -static struct sysfs_ops sysfs_ops = { +static const struct sysfs_ops sysfs_ops = { .show = sysdev_show, .store = sysdev_store, };@@ -104,7 +104,7 @@ static ssize_t sysdev_class_store(struct kobject *kobj, struct attribute *attr,return -EIO ; } -static struct sysfs_ops sysfs_class_ops = { +static const struct sysfs_ops sysfs_class_ops = { .show = sysdev_class_show, .store = sysdev_class_store, };drivers/block/pktcdvd.c +1
-1@@ -284,7 +284,7 @@ static ssize_t kobj_pkt_store(struct kobject *kobj,return len; } -static struct sysfs_ops kobj_pkt_ops = { +static const struct sysfs_ops kobj_pkt_ops = { .show = kobj_pkt_show, .store = kobj_pkt_store };drivers/cpufreq/cpufreq.c +1
-1@@ -750,7 +750,7 @@ static void cpufreq_sysfs_release(struct kobject *kobj)complete (&policy->kobj_unregister); } -static struct sysfs_ops sysfs_ops = { +static const struct sysfs_ops sysfs_ops = { .show = show, .store = store, };drivers/cpuidle/sysfs.c +2
-2@@ -191,7 +191,7 @@ static ssize_t cpuidle_store(struct kobject * kobj, struct attribute * attr,return ret; } -static struct sysfs_ops cpuidle_sysfs_ops = { +static const struct sysfs_ops cpuidle_sysfs_ops = { .show = cpuidle_show, .store = cpuidle_store, };@@ -277,7 +277,7 @@ static ssize_t cpuidle_state_show(struct kobject * kobj,return ret; } -static struct sysfs_ops cpuidle_state_sysfs_ops = { +static const struct sysfs_ops cpuidle_state_sysfs_ops = { .show = cpuidle_state_show, };drivers/dma/ioat/dma.c +1
-1@@ -1146,7 +1146,7 @@ ioat_attr_show(struct kobject *kobj, struct attribute *attr, char *page)return entry->show (&chan->common, page); } -struct sysfs_ops ioat_sysfs_ops = { +const struct sysfs_ops ioat_sysfs_ops = { .show = ioat_attr_show, };drivers/dma/ioat/dma.h +1
-1@@ -329,7 +329,7 @@ bool ioat_cleanup_preamble(struct ioat_chan_common *chan, unsigned long *phys_complete);void ioat_kobject_add (struct ioatdma_device *device,struct kobj_type *type);void ioat_kobject_del (struct ioatdma_device *device); -extern struct sysfs_ops ioat_sysfs_ops; +extern const struct sysfs_ops ioat_sysfs_ops;extern struct ioat_sysfs_entry ioat_version_attr;extern struct ioat_sysfs_entry ioat_cap_attr;#endif /* IOATDMA_H */ drivers/edac/edac_device_sysfs.c +3
-3@@ -137,7 +137,7 @@ static ssize_t edac_dev_ctl_info_store(struct kobject *kobj, }/* edac_dev file operations for an 'ctl_info' */ -static struct sysfs_ops device_ctl_info_ops = { +static const struct sysfs_ops device_ctl_info_ops = { .show = edac_dev_ctl_info_show, .store = edac_dev_ctl_info_store };@@ -373,7 +373,7 @@ static ssize_t edac_dev_instance_store(struct kobject *kobj, }/* edac_dev file operations for an 'instance' */ -static struct sysfs_ops device_instance_ops = { +static const struct sysfs_ops device_instance_ops = { .show = edac_dev_instance_show, .store = edac_dev_instance_store };@@ -476,7 +476,7 @@ static ssize_t edac_dev_block_store(struct kobject *kobj, }/* edac_dev file operations for a 'block' */ -static struct sysfs_ops device_block_ops = { +static const struct sysfs_ops device_block_ops = { .show = edac_dev_block_show, .store = edac_dev_block_store };drivers/edac/edac_mc_sysfs.c +2
-2@@ -245,7 +245,7 @@ static ssize_t csrowdev_store(struct kobject *kobj, struct attribute *attr,return -EIO ; } -static struct sysfs_ops csrowfs_ops = { +static const struct sysfs_ops csrowfs_ops = { .show = csrowdev_show, .store = csrowdev_store };@@ -575,7 +575,7 @@ static ssize_t mcidev_store(struct kobject *kobj, struct attribute *attr, }/* Intermediate show/store table */ -static struct sysfs_ops mci_ops = { +static const struct sysfs_ops mci_ops = { .show = mcidev_show, .store = mcidev_store };drivers/edac/edac_pci_sysfs.c +2
-2@@ -121,7 +121,7 @@ static ssize_t edac_pci_instance_store(struct kobject *kobj, }/* fs_ops table */ -static struct sysfs_ops pci_instance_ops = { +static const struct sysfs_ops pci_instance_ops = { .show = edac_pci_instance_show, .store = edac_pci_instance_store };@@ -261,7 +261,7 @@ static ssize_t edac_pci_dev_store(struct kobject *kobj,return -EIO ; } -static struct sysfs_ops edac_pci_sysfs_ops = { +static const struct sysfs_ops edac_pci_sysfs_ops = { .show = edac_pci_dev_show, .store = edac_pci_dev_store };drivers/firmware/edd.c +1
-1@@ -122,7 +122,7 @@ edd_attr_show(struct kobject * kobj, struct attribute *attr, char *buf)return ret; } -static struct sysfs_ops edd_attr_ops = { +static const struct sysfs_ops edd_attr_ops = { .show = edd_attr_show, };drivers/firmware/efivars.c +1
-1@@ -362,7 +362,7 @@ static ssize_t efivar_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops efivar_attr_ops = { +static const struct sysfs_ops efivar_attr_ops = { .show = efivar_attr_show, .store = efivar_attr_store, };drivers/firmware/iscsi_ibft.c +1
-1@@ -525,7 +525,7 @@ static ssize_t ibft_show_attribute(struct kobject *kobj,return ret; } -static struct sysfs_ops ibft_attr_ops = { +static const struct sysfs_ops ibft_attr_ops = { .show = ibft_show_attribute, };drivers/firmware/memmap.c +1
-1@@ -74,7 +74,7 @@ static struct attribute *def_attrs[] = { NULL }; -static struct sysfs_ops memmap_attr_ops = { +static const struct sysfs_ops memmap_attr_ops = { .show = memmap_attr_show, };drivers/gpu/drm/ttm/ttm_bo.c +1
-1@@ -67,7 +67,7 @@ static struct attribute *ttm_bo_global_attrs[] = { NULL }; -static struct sysfs_ops ttm_bo_global_ops = { +static const struct sysfs_ops ttm_bo_global_ops = { .show = &ttm_bo_global_show };drivers/gpu/drm/ttm/ttm_memory.c +1
-1@@ -152,7 +152,7 @@ static struct attribute *ttm_mem_zone_attrs[] = { NULL }; -static struct sysfs_ops ttm_mem_zone_ops = { +static const struct sysfs_ops ttm_mem_zone_ops = { .show = &ttm_mem_zone_show, .store = &ttm_mem_zone_store };drivers/infiniband/core/cm.c +1
-1@@ -3597,7 +3597,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr, atomic_long_read(&group->counter[cm_attr->index])); } -static struct sysfs_ops cm_counter_ops = { +static const struct sysfs_ops cm_counter_ops = { .show = cm_show_counter };drivers/infiniband/core/sysfs.c +1
-1@@ -79,7 +79,7 @@ static ssize_t port_attr_show(struct kobject *kobj,return port_attr->show (p, port_attr, buf); } -static struct sysfs_ops port_sysfs_ops = { +static const struct sysfs_ops port_sysfs_ops = { .show = port_attr_show };drivers/md/dm-sysfs.c +1
-1@@ -75,7 +75,7 @@ static struct attribute *dm_attrs[] = { NULL, }; -static struct sysfs_ops dm_sysfs_ops = { +static const struct sysfs_ops dm_sysfs_ops = { .show = dm_attr_show, };drivers/md/md.c +2
-2@@ -2505,7 +2505,7 @@ static void rdev_free(struct kobject *ko)mdk_rdev_t *rdev =container_of (ko, mdk_rdev_t, kobj);kfree (rdev); } -static struct sysfs_ops rdev_sysfs_ops = { +static const struct sysfs_ops rdev_sysfs_ops = { .show = rdev_attr_show, .store = rdev_attr_store, };@@ -3875,7 +3875,7 @@ static void md_free(struct kobject *ko)kfree (mddev); } -static struct sysfs_ops md_sysfs_ops = { +static const struct sysfs_ops md_sysfs_ops = { .show = md_attr_show, .store = md_attr_store, };drivers/net/ibmveth.c +1
-1@@ -1577,7 +1577,7 @@ static struct attribute * veth_pool_attrs[] = { NULL, }; -static struct sysfs_ops veth_pool_ops = { +static const struct sysfs_ops veth_pool_ops = { .show = veth_pool_show, .store = veth_pool_store, };drivers/net/iseries_veth.c +2
-2@@ -384,7 +384,7 @@ static struct attribute *veth_cnx_default_attrs[] = { NULL }; -static struct sysfs_ops veth_cnx_sysfs_ops = { +static const struct sysfs_ops veth_cnx_sysfs_ops = { .show = veth_cnx_attribute_show };@@ -441,7 +441,7 @@ static struct attribute *veth_port_default_attrs[] = { NULL }; -static struct sysfs_ops veth_port_sysfs_ops = { +static const struct sysfs_ops veth_port_sysfs_ops = { .show = veth_port_attribute_show };drivers/parisc/pdc_stable.c +1
-1@@ -481,7 +481,7 @@ pdcspath_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops pdcspath_attr_ops = { +static const struct sysfs_ops pdcspath_attr_ops = { .show = pdcspath_attr_show, .store = pdcspath_attr_store, };drivers/pci/hotplug/fakephp.c +1
-1@@ -73,7 +73,7 @@ static void legacy_release(struct kobject *kobj) }static struct kobj_type legacy_ktype = { - .sysfs_ops = &(struct sysfs_ops ){ + .sysfs_ops = &(const struct sysfs_ops ){ .store = legacy_store, .show = legacy_show }, .release = &legacy_release,drivers/pci/slot.c +1
-1@@ -29,7 +29,7 @@ static ssize_t pci_slot_attr_store(struct kobject *kobj,return attribute->store ? attribute->store (slot, buf, len) : -EIO ; } -static struct sysfs_ops pci_slot_sysfs_ops = { +static const struct sysfs_ops pci_slot_sysfs_ops = { .show = pci_slot_attr_show, .store = pci_slot_attr_store, };drivers/uio/uio.c +2
-2@@ -129,7 +129,7 @@ static ssize_t map_type_show(struct kobject *kobj, struct attribute *attr,return entry->show (mem, buf); } -static struct sysfs_ops map_sysfs_ops = { +static const struct sysfs_ops map_sysfs_ops = { .show = map_type_show, };@@ -217,7 +217,7 @@ static ssize_t portio_type_show(struct kobject *kobj, struct attribute *attr,return entry->show (port, buf); } -static struct sysfs_ops portio_sysfs_ops = { +static const struct sysfs_ops portio_sysfs_ops = { .show = portio_type_show, };drivers/uwb/wlp/sysfs.c +1
-2@@ -615,8 +615,7 @@ ssize_t wlp_wss_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static -struct sysfs_ops wss_sysfs_ops = { +static const struct sysfs_ops wss_sysfs_ops = { .show = wlp_wss_attr_show, .store = wlp_wss_attr_store, };drivers/xen/sys-hypervisor.c +1
-1@@ -425,7 +425,7 @@ static ssize_t hyp_sysfs_store(struct kobject *kobj,return 0 ; } -static struct sysfs_ops hyp_sysfs_ops = { +static const struct sysfs_ops hyp_sysfs_ops = { .show = hyp_sysfs_show, .store = hyp_sysfs_store, };fs/btrfs/sysfs.c +2
-2@@ -164,12 +164,12 @@ static void btrfs_root_release(struct kobject *kobj)complete (&root->kobj_unregister); } -static struct sysfs_ops btrfs_super_attr_ops = { +static const struct sysfs_ops btrfs_super_attr_ops = { .show = btrfs_super_attr_show, .store = btrfs_super_attr_store, }; -static struct sysfs_ops btrfs_root_attr_ops = { +static const struct sysfs_ops btrfs_root_attr_ops = { .show = btrfs_root_attr_show, .store = btrfs_root_attr_store, };fs/dlm/lockspace.c +1
-1@@ -148,7 +148,7 @@ static void lockspace_kobj_release(struct kobject *k)kfree (ls); } -static struct sysfs_ops dlm_attr_ops = { +static const struct sysfs_ops dlm_attr_ops = { .show = dlm_attr_show, .store = dlm_attr_store, };fs/ext4/super.c +1
-1@@ -2251,7 +2251,7 @@ static void ext4_sb_release(struct kobject *kobj) } -static struct sysfs_ops ext4_attr_ops = { +static const struct sysfs_ops ext4_attr_ops = { .show = ext4_attr_show, .store = ext4_attr_store, };fs/gfs2/sys.c +1
-1@@ -49,7 +49,7 @@ static ssize_t gfs2_attr_store(struct kobject *kobj, struct attribute *attr,return a->store ? a->store (sdp, buf, len) : len; } -static struct sysfs_ops gfs2_attr_ops = { +static const struct sysfs_ops gfs2_attr_ops = { .show = gfs2_attr_show, .store = gfs2_attr_store, };fs/ocfs2/cluster/masklog.c +1
-1@@ -135,7 +135,7 @@ static ssize_t mlog_store(struct kobject *obj, struct attribute *attr,return mlog_mask_store (mlog_attr->mask, buf, count); } -static struct sysfs_ops mlog_attr_ops = { +static const struct sysfs_ops mlog_attr_ops = { .show = mlog_show, .store = mlog_store, };fs/sysfs/file.c +4
-4@@ -53,7 +53,7 @@ struct sysfs_buffer {size_t count;loff_t pos;char * page; -struct sysfs_ops * ops; +const struct sysfs_ops * ops;struct mutex mutex;int needs_read_fill;int event;@@ -75,7 +75,7 @@ static int fill_read_buffer(struct dentry * dentry, struct sysfs_buffer * buffer {struct sysfs_dirent *attr_sd = dentry->d_fsdata;struct kobject *kobj = attr_sd->s_parent->s_dir.kobj; -struct sysfs_ops * ops = buffer->ops; +const struct sysfs_ops * ops = buffer->ops;int ret =0 ;ssize_t count;@@ -199,7 +199,7 @@ flush_write_buffer(struct dentry * dentry, struct sysfs_buffer * buffer, size_t {struct sysfs_dirent *attr_sd = dentry->d_fsdata;struct kobject *kobj = attr_sd->s_parent->s_dir.kobj; -struct sysfs_ops * ops = buffer->ops; +const struct sysfs_ops * ops = buffer->ops;int rc;/* need attr_sd for attr and ops, its parent for kobj */ @@ -335,7 +335,7 @@ static int sysfs_open_file(struct inode *inode, struct file *file)struct sysfs_dirent *attr_sd = file->f_path.dentry->d_fsdata;struct kobject *kobj = attr_sd->s_parent->s_dir.kobj;struct sysfs_buffer *buffer; -struct sysfs_ops *ops; +const struct sysfs_ops *ops;int error = -EACCES ;char *p;include/linux/kobject.h +2
-2@@ -106,7 +106,7 @@ extern char *kobject_get_path(struct kobject *kobj, gfp_t flag);struct kobj_type {void (*release)(struct kobject *kobj); -struct sysfs_ops *sysfs_ops; +const struct sysfs_ops *sysfs_ops;struct attribute **default_attrs; };@@ -132,7 +132,7 @@ struct kobj_attribute { const char *buf, size_t count); }; -extern struct sysfs_ops kobj_sysfs_ops; +extern const struct sysfs_ops kobj_sysfs_ops;/** * struct kset - a set of kobjects of a specific type, belonging to a specific subsystem. include/linux/sysfs.h +2
-2@@ -75,8 +75,8 @@ struct bin_attribute { };struct sysfs_ops { -ssize_t (*show)(struct kobject *,struct attribute *,char *); -ssize_t (*store)(struct kobject *,struct attribute *,const char *,size_t ); +ssize_t (*const show)(struct kobject *,struct attribute *,char *); +ssize_t (*const store)(struct kobject *,struct attribute *,const char *,size_t ); };struct sysfs_dirent ;kernel/params.c +1
-1@@ -725,7 +725,7 @@ static ssize_t module_attr_store(struct kobject *kobj,return ret; } -static struct sysfs_ops module_sysfs_ops = { +static const struct sysfs_ops module_sysfs_ops = { .show = module_attr_show, .store = module_attr_store, };lib/kobject.c +1
-1@@ -700,7 +700,7 @@ static ssize_t kobj_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -struct sysfs_ops kobj_sysfs_ops = { +const struct sysfs_ops kobj_sysfs_ops = { .show = kobj_attr_show, .store = kobj_attr_store, };mm/slub.c +1
-1@@ -4503,7 +4503,7 @@ static void kmem_cache_release(struct kobject *kobj)kfree (s); } -static struct sysfs_ops slab_sysfs_ops = { +static const struct sysfs_ops slab_sysfs_ops = { .show = slab_attr_show, .store = slab_attr_store, };net/bridge/br_private.h +1
-1@@ -254,7 +254,7 @@ extern void br_ifinfo_notify(int event, struct net_bridge_port *port);#ifdef CONFIG_SYSFS /* br_sysfs_if.c */ -extern struct sysfs_ops brport_sysfs_ops; +extern const struct sysfs_ops brport_sysfs_ops;extern int br_sysfs_addif (struct net_bridge_port *p);/* br_sysfs_br.c */ net/bridge/br_sysfs_if.c +1
-1@@ -220,7 +220,7 @@ static ssize_t brport_store(struct kobject * kobj,return ret; } -struct sysfs_ops brport_sysfs_ops = { +const struct sysfs_ops brport_sysfs_ops = { .show = brport_show, .store = brport_store, };samples/kobject/kset-example.c +1
-1@@ -87,7 +87,7 @@ static ssize_t foo_attr_store(struct kobject *kobj, }/* Our custom sysfs_ops that we will associate with our ktype later on */ -static struct sysfs_ops foo_sysfs_ops = { +static const struct sysfs_ops foo_sysfs_ops = { .show = foo_attr_show, .store = foo_attr_store, };
Re: [PATCH 29/31] Constify struct sysfs_ops for 2.6.32 v1
In reply to Emese RevfyQuoted 5 lines · On Fri, 04 Dec 2009 23:49:06 +0100 Emese Revfy <[email protected]> wrote:
From: Emese Revfy <[email protected]>
Constify struct
sysfs_ops.Signed-off-by Emese Revfy <[email protected]>
Re: [PATCH 29/31] Constify struct sysfs_ops for 2.6.32 v1
In reply to Emese RevfyFrom: Emese Revfy <[email protected]>
Constify struct sysfs_ops.
Per Dave Miller's suggestion, resend with proper CC list and patch format.
--- arch/ia64/kernel/topology.c | 2 +- arch/powerpc/kernel/cacheinfo.c | 2 +- arch/sh/kernel/cpu/sh4/sq.c | 2 +- arch/x86/kernel/cpu/intel_cacheinfo.c | 2 +- arch/x86/kernel/cpu/mcheck/mce_amd.c | 2 +- block/blk-integrity.c | 2 +- block/blk-sysfs.c | 2 +- block/elevator.c | 2 +- drivers/base/bus.c | 4 ++-- drivers/base/class.c | 2 +- drivers/base/core.c | 2 +- drivers/base/sys.c | 4 ++-- drivers/block/pktcdvd.c | 2 +- drivers/cpufreq/cpufreq.c | 2 +- drivers/cpuidle/sysfs.c | 4 ++-- drivers/dma/ioat/dma.c | 2 +- drivers/dma/ioat/dma.h | 2 +- drivers/edac/edac_device_sysfs.c | 6 +++--- drivers/edac/edac_mc_sysfs.c | 4 ++-- drivers/edac/edac_pci_sysfs.c | 4 ++-- drivers/firmware/edd.c | 2 +- drivers/firmware/efivars.c | 2 +- drivers/firmware/iscsi_ibft.c | 2 +- drivers/firmware/memmap.c | 2 +- drivers/gpu/drm/ttm/ttm_bo.c | 2 +- drivers/gpu/drm/ttm/ttm_memory.c | 2 +- drivers/infiniband/core/cm.c | 2 +- drivers/infiniband/core/sysfs.c | 2 +- drivers/md/dm-sysfs.c | 2 +- drivers/md/md.c | 4 ++-- drivers/net/ibmveth.c | 2 +- drivers/net/iseries_veth.c | 4 ++-- drivers/parisc/pdc_stable.c | 2 +- drivers/pci/hotplug/fakephp.c | 2 +- drivers/pci/slot.c | 2 +- drivers/uio/uio.c | 4 ++-- drivers/uwb/wlp/sysfs.c | 3 +-- drivers/xen/sys-hypervisor.c | 2 +- fs/btrfs/sysfs.c | 4 ++-- fs/dlm/lockspace.c | 2 +- fs/ext4/super.c | 2 +- fs/gfs2/sys.c | 2 +- fs/ocfs2/cluster/masklog.c | 2 +- fs/sysfs/file.c | 8 ++++---- include/linux/kobject.h | 4 ++-- include/linux/sysfs.h | 4 ++-- kernel/params.c | 2 +- lib/kobject.c | 2 +- mm/slub.c | 2 +- net/bridge/br_private.h | 2 +- net/bridge/br_sysfs_if.c | 2 +- samples/kobject/kset-example.c | 2 +- 52 files changed, 68 insertions(+), 69 deletions(-)
arch/ia64/kernel/topology.c +1 -1
@@ -282,7 +282,7 @@ static ssize_t cache_show(struct kobject * kobj, struct attribute * attr, char *return ret; } -static struct sysfs_ops cache_sysfs_ops = { +static const struct sysfs_ops cache_sysfs_ops = { .show = cache_show };
arch/powerpc/kernel/cacheinfo.c +1 -1
@@ -642,7 +642,7 @@ static struct kobj_attribute *cache_index_opt_attrs[] = { &cache_assoc_attr, }; -static struct sysfs_ops cache_index_ops = { +static const struct sysfs_ops cache_index_ops = { .show = cache_index_show, };
arch/sh/kernel/cpu/sh4/sq.c +1 -1
@@ -327,7 +327,7 @@ static struct attribute *sq_sysfs_attrs[] = { NULL, }; -static struct sysfs_ops sq_sysfs_ops = { +static const struct sysfs_ops sq_sysfs_ops = { .show = sq_sysfs_show, .store = sq_sysfs_store, };
arch/x86/kernel/cpu/intel_cacheinfo.c +1 -1
@@ -860,7 +860,7 @@ static ssize_t store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops sysfs_ops = { +static const struct sysfs_ops sysfs_ops = { .show = show, .store = store, };
arch/x86/kernel/cpu/mcheck/mce_amd.c +1 -1
@@ -388,7 +388,7 @@ static ssize_t store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops threshold_ops = { +static const struct sysfs_ops threshold_ops = { .show = show, .store = store, };
block/blk-integrity.c +1 -1
@@ -278,7 +278,7 @@ static struct attribute *integrity_attrs[] = { NULL, }; -static struct sysfs_ops integrity_ops = { +static const struct sysfs_ops integrity_ops = { .show = &integrity_attr_show, .store = &integrity_attr_store, };
block/blk-sysfs.c +1 -1
@@ -414,7 +414,7 @@ static void blk_release_queue(struct kobject *kobj)kmem_cache_free (blk_requestq_cachep, q); } -static struct sysfs_ops queue_sysfs_ops = { +static const struct sysfs_ops queue_sysfs_ops = { .show = queue_attr_show, .store = queue_attr_store, };
block/elevator.c +1 -1
@@ -889,7 +889,7 @@ elv_attr_store(struct kobject *kobj, struct attribute *attr,return error; } -static struct sysfs_ops elv_sysfs_ops = { +static const struct sysfs_ops elv_sysfs_ops = { .show = elv_attr_show, .store = elv_attr_store, };
drivers/base/bus.c +2 -2
@@ -70,7 +70,7 @@ static ssize_t drv_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops driver_sysfs_ops = { +static const struct sysfs_ops driver_sysfs_ops = { .show = drv_attr_show, .store = drv_attr_store, };
@@ -115,7 +115,7 @@ static ssize_t bus_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops bus_sysfs_ops = { +static const struct sysfs_ops bus_sysfs_ops = { .show = bus_attr_show, .store = bus_attr_store, };
drivers/base/class.c +1 -1
@@ -61,7 +61,7 @@ static void class_release(struct kobject *kobj) "be careful\n", class->name); } -static struct sysfs_ops class_sysfs_ops = { +static const struct sysfs_ops class_sysfs_ops = { .show = class_attr_show, .store = class_attr_store, };
drivers/base/core.c +1 -1
@@ -93,7 +93,7 @@ static ssize_t dev_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops dev_sysfs_ops = { +static const struct sysfs_ops dev_sysfs_ops = { .show = dev_attr_show, .store = dev_attr_store, };
drivers/base/sys.c +2 -2
@@ -54,7 +54,7 @@ sysdev_store(struct kobject *kobj, struct attribute *attr,return -EIO ; } -static struct sysfs_ops sysfs_ops = { +static const struct sysfs_ops sysfs_ops = { .show = sysdev_show, .store = sysdev_store, };
@@ -104,7 +104,7 @@ static ssize_t sysdev_class_store(struct kobject *kobj, struct attribute *attr,return -EIO ; } -static struct sysfs_ops sysfs_class_ops = { +static const struct sysfs_ops sysfs_class_ops = { .show = sysdev_class_show, .store = sysdev_class_store, };
drivers/block/pktcdvd.c +1 -1
@@ -284,7 +284,7 @@ static ssize_t kobj_pkt_store(struct kobject *kobj,return len; } -static struct sysfs_ops kobj_pkt_ops = { +static const struct sysfs_ops kobj_pkt_ops = { .show = kobj_pkt_show, .store = kobj_pkt_store };
drivers/cpufreq/cpufreq.c +1 -1
@@ -750,7 +750,7 @@ static void cpufreq_sysfs_release(struct kobject *kobj)complete (&policy->kobj_unregister); } -static struct sysfs_ops sysfs_ops = { +static const struct sysfs_ops sysfs_ops = { .show = show, .store = store, };
drivers/cpuidle/sysfs.c +2 -2
@@ -191,7 +191,7 @@ static ssize_t cpuidle_store(struct kobject * kobj, struct attribute * attr,return ret; } -static struct sysfs_ops cpuidle_sysfs_ops = { +static const struct sysfs_ops cpuidle_sysfs_ops = { .show = cpuidle_show, .store = cpuidle_store, };
@@ -277,7 +277,7 @@ static ssize_t cpuidle_state_show(struct kobject * kobj,return ret; } -static struct sysfs_ops cpuidle_state_sysfs_ops = { +static const struct sysfs_ops cpuidle_state_sysfs_ops = { .show = cpuidle_state_show, };
drivers/dma/ioat/dma.c +1 -1
@@ -1146,7 +1146,7 @@ ioat_attr_show(struct kobject *kobj, struct attribute *attr, char *page)return entry->show (&chan->common, page); } -struct sysfs_ops ioat_sysfs_ops = { +const struct sysfs_ops ioat_sysfs_ops = { .show = ioat_attr_show, };
drivers/dma/ioat/dma.h +1 -1
@@ -329,7 +329,7 @@ bool ioat_cleanup_preamble(struct ioat_chan_common *chan, unsigned long *phys_complete);void ioat_kobject_add (struct ioatdma_device *device,struct kobj_type *type);void ioat_kobject_del (struct ioatdma_device *device); -extern struct sysfs_ops ioat_sysfs_ops; +extern const struct sysfs_ops ioat_sysfs_ops;extern struct ioat_sysfs_entry ioat_version_attr;extern struct ioat_sysfs_entry ioat_cap_attr;#endif /* IOATDMA_H */
drivers/edac/edac_device_sysfs.c +3 -3
@@ -137,7 +137,7 @@ static ssize_t edac_dev_ctl_info_store(struct kobject *kobj, }/* edac_dev file operations for an 'ctl_info' */ -static struct sysfs_ops device_ctl_info_ops = { +static const struct sysfs_ops device_ctl_info_ops = { .show = edac_dev_ctl_info_show, .store = edac_dev_ctl_info_store };
@@ -373,7 +373,7 @@ static ssize_t edac_dev_instance_store(struct kobject *kobj, }/* edac_dev file operations for an 'instance' */ -static struct sysfs_ops device_instance_ops = { +static const struct sysfs_ops device_instance_ops = { .show = edac_dev_instance_show, .store = edac_dev_instance_store };
@@ -476,7 +476,7 @@ static ssize_t edac_dev_block_store(struct kobject *kobj, }/* edac_dev file operations for a 'block' */ -static struct sysfs_ops device_block_ops = { +static const struct sysfs_ops device_block_ops = { .show = edac_dev_block_show, .store = edac_dev_block_store };
drivers/edac/edac_mc_sysfs.c +2 -2
@@ -245,7 +245,7 @@ static ssize_t csrowdev_store(struct kobject *kobj, struct attribute *attr,return -EIO ; } -static struct sysfs_ops csrowfs_ops = { +static const struct sysfs_ops csrowfs_ops = { .show = csrowdev_show, .store = csrowdev_store };
@@ -575,7 +575,7 @@ static ssize_t mcidev_store(struct kobject *kobj, struct attribute *attr, }/* Intermediate show/store table */ -static struct sysfs_ops mci_ops = { +static const struct sysfs_ops mci_ops = { .show = mcidev_show, .store = mcidev_store };
drivers/edac/edac_pci_sysfs.c +2 -2
@@ -121,7 +121,7 @@ static ssize_t edac_pci_instance_store(struct kobject *kobj, }/* fs_ops table */ -static struct sysfs_ops pci_instance_ops = { +static const struct sysfs_ops pci_instance_ops = { .show = edac_pci_instance_show, .store = edac_pci_instance_store };
@@ -261,7 +261,7 @@ static ssize_t edac_pci_dev_store(struct kobject *kobj,return -EIO ; } -static struct sysfs_ops edac_pci_sysfs_ops = { +static const struct sysfs_ops edac_pci_sysfs_ops = { .show = edac_pci_dev_show, .store = edac_pci_dev_store };
drivers/firmware/edd.c +1 -1
@@ -122,7 +122,7 @@ edd_attr_show(struct kobject * kobj, struct attribute *attr, char *buf)return ret; } -static struct sysfs_ops edd_attr_ops = { +static const struct sysfs_ops edd_attr_ops = { .show = edd_attr_show, };
drivers/firmware/efivars.c +1 -1
@@ -362,7 +362,7 @@ static ssize_t efivar_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops efivar_attr_ops = { +static const struct sysfs_ops efivar_attr_ops = { .show = efivar_attr_show, .store = efivar_attr_store, };
drivers/firmware/iscsi_ibft.c +1 -1
@@ -525,7 +525,7 @@ static ssize_t ibft_show_attribute(struct kobject *kobj,return ret; } -static struct sysfs_ops ibft_attr_ops = { +static const struct sysfs_ops ibft_attr_ops = { .show = ibft_show_attribute, };
drivers/firmware/memmap.c +1 -1
@@ -74,7 +74,7 @@ static struct attribute *def_attrs[] = { NULL }; -static struct sysfs_ops memmap_attr_ops = { +static const struct sysfs_ops memmap_attr_ops = { .show = memmap_attr_show, };
drivers/gpu/drm/ttm/ttm_bo.c +1 -1
@@ -67,7 +67,7 @@ static struct attribute *ttm_bo_global_attrs[] = { NULL }; -static struct sysfs_ops ttm_bo_global_ops = { +static const struct sysfs_ops ttm_bo_global_ops = { .show = &ttm_bo_global_show };
drivers/gpu/drm/ttm/ttm_memory.c +1 -1
@@ -152,7 +152,7 @@ static struct attribute *ttm_mem_zone_attrs[] = { NULL }; -static struct sysfs_ops ttm_mem_zone_ops = { +static const struct sysfs_ops ttm_mem_zone_ops = { .show = &ttm_mem_zone_show, .store = &ttm_mem_zone_store };
drivers/infiniband/core/cm.c +1 -1
@@ -3597,7 +3597,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr, atomic_long_read(&group->counter[cm_attr->index])); } -static struct sysfs_ops cm_counter_ops = { +static const struct sysfs_ops cm_counter_ops = { .show = cm_show_counter };
drivers/infiniband/core/sysfs.c +1 -1
@@ -79,7 +79,7 @@ static ssize_t port_attr_show(struct kobject *kobj,return port_attr->show (p, port_attr, buf); } -static struct sysfs_ops port_sysfs_ops = { +static const struct sysfs_ops port_sysfs_ops = { .show = port_attr_show };
drivers/md/dm-sysfs.c +1 -1
@@ -75,7 +75,7 @@ static struct attribute *dm_attrs[] = { NULL, }; -static struct sysfs_ops dm_sysfs_ops = { +static const struct sysfs_ops dm_sysfs_ops = { .show = dm_attr_show, };
drivers/md/md.c +2 -2
@@ -2505,7 +2505,7 @@ static void rdev_free(struct kobject *ko)mdk_rdev_t *rdev =container_of (ko, mdk_rdev_t, kobj);kfree (rdev); } -static struct sysfs_ops rdev_sysfs_ops = { +static const struct sysfs_ops rdev_sysfs_ops = { .show = rdev_attr_show, .store = rdev_attr_store, };
@@ -3875,7 +3875,7 @@ static void md_free(struct kobject *ko)kfree (mddev); } -static struct sysfs_ops md_sysfs_ops = { +static const struct sysfs_ops md_sysfs_ops = { .show = md_attr_show, .store = md_attr_store, };
drivers/net/ibmveth.c +1 -1
@@ -1577,7 +1577,7 @@ static struct attribute * veth_pool_attrs[] = { NULL, }; -static struct sysfs_ops veth_pool_ops = { +static const struct sysfs_ops veth_pool_ops = { .show = veth_pool_show, .store = veth_pool_store, };
drivers/net/iseries_veth.c +2 -2
@@ -384,7 +384,7 @@ static struct attribute *veth_cnx_default_attrs[] = { NULL }; -static struct sysfs_ops veth_cnx_sysfs_ops = { +static const struct sysfs_ops veth_cnx_sysfs_ops = { .show = veth_cnx_attribute_show };
@@ -441,7 +441,7 @@ static struct attribute *veth_port_default_attrs[] = { NULL }; -static struct sysfs_ops veth_port_sysfs_ops = { +static const struct sysfs_ops veth_port_sysfs_ops = { .show = veth_port_attribute_show };
drivers/parisc/pdc_stable.c +1 -1
@@ -481,7 +481,7 @@ pdcspath_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static struct sysfs_ops pdcspath_attr_ops = { +static const struct sysfs_ops pdcspath_attr_ops = { .show = pdcspath_attr_show, .store = pdcspath_attr_store, };
drivers/pci/hotplug/fakephp.c +1 -1
@@ -73,7 +73,7 @@ static void legacy_release(struct kobject *kobj) }static struct kobj_type legacy_ktype = { - .sysfs_ops = &(struct sysfs_ops ){ + .sysfs_ops = &(const struct sysfs_ops ){ .store = legacy_store, .show = legacy_show }, .release = &legacy_release,
drivers/pci/slot.c +1 -1
@@ -29,7 +29,7 @@ static ssize_t pci_slot_attr_store(struct kobject *kobj,return attribute->store ? attribute->store (slot, buf, len) : -EIO ; } -static struct sysfs_ops pci_slot_sysfs_ops = { +static const struct sysfs_ops pci_slot_sysfs_ops = { .show = pci_slot_attr_show, .store = pci_slot_attr_store, };
drivers/uio/uio.c +2 -2
@@ -129,7 +129,7 @@ static ssize_t map_type_show(struct kobject *kobj, struct attribute *attr,return entry->show (mem, buf); } -static struct sysfs_ops map_sysfs_ops = { +static const struct sysfs_ops map_sysfs_ops = { .show = map_type_show, };
@@ -217,7 +217,7 @@ static ssize_t portio_type_show(struct kobject *kobj, struct attribute *attr,return entry->show (port, buf); } -static struct sysfs_ops portio_sysfs_ops = { +static const struct sysfs_ops portio_sysfs_ops = { .show = portio_type_show, };
drivers/uwb/wlp/sysfs.c +1 -2
@@ -615,8 +615,7 @@ ssize_t wlp_wss_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -static -struct sysfs_ops wss_sysfs_ops = { +static const struct sysfs_ops wss_sysfs_ops = { .show = wlp_wss_attr_show, .store = wlp_wss_attr_store, };
drivers/xen/sys-hypervisor.c +1 -1
@@ -425,7 +425,7 @@ static ssize_t hyp_sysfs_store(struct kobject *kobj,return 0 ; } -static struct sysfs_ops hyp_sysfs_ops = { +static const struct sysfs_ops hyp_sysfs_ops = { .show = hyp_sysfs_show, .store = hyp_sysfs_store, };
fs/btrfs/sysfs.c +2 -2
@@ -164,12 +164,12 @@ static void btrfs_root_release(struct kobject *kobj)complete (&root->kobj_unregister); } -static struct sysfs_ops btrfs_super_attr_ops = { +static const struct sysfs_ops btrfs_super_attr_ops = { .show = btrfs_super_attr_show, .store = btrfs_super_attr_store, }; -static struct sysfs_ops btrfs_root_attr_ops = { +static const struct sysfs_ops btrfs_root_attr_ops = { .show = btrfs_root_attr_show, .store = btrfs_root_attr_store, };
fs/dlm/lockspace.c +1 -1
@@ -148,7 +148,7 @@ static void lockspace_kobj_release(struct kobject *k)kfree (ls); } -static struct sysfs_ops dlm_attr_ops = { +static const struct sysfs_ops dlm_attr_ops = { .show = dlm_attr_show, .store = dlm_attr_store, };
fs/ext4/super.c +1 -1
@@ -2251,7 +2251,7 @@ static void ext4_sb_release(struct kobject *kobj) } -static struct sysfs_ops ext4_attr_ops = { +static const struct sysfs_ops ext4_attr_ops = { .show = ext4_attr_show, .store = ext4_attr_store, };
fs/gfs2/sys.c +1 -1
@@ -49,7 +49,7 @@ static ssize_t gfs2_attr_store(struct kobject *kobj, struct attribute *attr,return a->store ? a->store (sdp, buf, len) : len; } -static struct sysfs_ops gfs2_attr_ops = { +static const struct sysfs_ops gfs2_attr_ops = { .show = gfs2_attr_show, .store = gfs2_attr_store, };
fs/ocfs2/cluster/masklog.c +1 -1
@@ -135,7 +135,7 @@ static ssize_t mlog_store(struct kobject *obj, struct attribute *attr,return mlog_mask_store (mlog_attr->mask, buf, count); } -static struct sysfs_ops mlog_attr_ops = { +static const struct sysfs_ops mlog_attr_ops = { .show = mlog_show, .store = mlog_store, };
fs/sysfs/file.c +4 -4
@@ -53,7 +53,7 @@ struct sysfs_buffer {size_t count;loff_t pos;char * page; -struct sysfs_ops * ops; +const struct sysfs_ops * ops;struct mutex mutex;int needs_read_fill;int event;
@@ -75,7 +75,7 @@ static int fill_read_buffer(struct dentry * dentry, struct sysfs_buffer * buffer {struct sysfs_dirent *attr_sd = dentry->d_fsdata;struct kobject *kobj = attr_sd->s_parent->s_dir.kobj; -struct sysfs_ops * ops = buffer->ops; +const struct sysfs_ops * ops = buffer->ops;int ret =0 ;ssize_t count;
@@ -199,7 +199,7 @@ flush_write_buffer(struct dentry * dentry, struct sysfs_buffer * buffer, size_t {struct sysfs_dirent *attr_sd = dentry->d_fsdata;struct kobject *kobj = attr_sd->s_parent->s_dir.kobj; -struct sysfs_ops * ops = buffer->ops; +const struct sysfs_ops * ops = buffer->ops;int rc;/* need attr_sd for attr and ops, its parent for kobj */
@@ -335,7 +335,7 @@ static int sysfs_open_file(struct inode *inode, struct file *file)struct sysfs_dirent *attr_sd = file->f_path.dentry->d_fsdata;struct kobject *kobj = attr_sd->s_parent->s_dir.kobj;struct sysfs_buffer *buffer; -struct sysfs_ops *ops; +const struct sysfs_ops *ops;int error = -EACCES ;char *p;
include/linux/kobject.h +2 -2
@@ -106,7 +106,7 @@ extern char *kobject_get_path(struct kobject *kobj, gfp_t flag);struct kobj_type {void (*release)(struct kobject *kobj); -struct sysfs_ops *sysfs_ops; +const struct sysfs_ops *sysfs_ops;struct attribute **default_attrs; };
@@ -132,7 +132,7 @@ struct kobj_attribute { const char *buf, size_t count); }; -extern struct sysfs_ops kobj_sysfs_ops; +extern const struct sysfs_ops kobj_sysfs_ops;/** * struct kset - a set of kobjects of a specific type, belonging to a specific subsystem.
include/linux/sysfs.h +2 -2
@@ -75,8 +75,8 @@ struct bin_attribute { };struct sysfs_ops { -ssize_t (*show)(struct kobject *,struct attribute *,char *); -ssize_t (*store)(struct kobject *,struct attribute *,const char *,size_t ); +ssize_t (*const show)(struct kobject *,struct attribute *,char *); +ssize_t (*const store)(struct kobject *,struct attribute *,const char *,size_t ); };struct sysfs_dirent ;
kernel/params.c +1 -1
@@ -725,7 +725,7 @@ static ssize_t module_attr_store(struct kobject *kobj,return ret; } -static struct sysfs_ops module_sysfs_ops = { +static const struct sysfs_ops module_sysfs_ops = { .show = module_attr_show, .store = module_attr_store, };
lib/kobject.c +1 -1
@@ -700,7 +700,7 @@ static ssize_t kobj_attr_store(struct kobject *kobj, struct attribute *attr,return ret; } -struct sysfs_ops kobj_sysfs_ops = { +const struct sysfs_ops kobj_sysfs_ops = { .show = kobj_attr_show, .store = kobj_attr_store, };
mm/slub.c +1 -1
@@ -4503,7 +4503,7 @@ static void kmem_cache_release(struct kobject *kobj)kfree (s); } -static struct sysfs_ops slab_sysfs_ops = { +static const struct sysfs_ops slab_sysfs_ops = { .show = slab_attr_show, .store = slab_attr_store, };
net/bridge/br_private.h +1 -1
@@ -254,7 +254,7 @@ extern void br_ifinfo_notify(int event, struct net_bridge_port *port);#ifdef CONFIG_SYSFS /* br_sysfs_if.c */ -extern struct sysfs_ops brport_sysfs_ops; +extern const struct sysfs_ops brport_sysfs_ops;extern int br_sysfs_addif (struct net_bridge_port *p);/* br_sysfs_br.c */
net/bridge/br_sysfs_if.c +1 -1
@@ -220,7 +220,7 @@ static ssize_t brport_store(struct kobject * kobj,return ret; } -struct sysfs_ops brport_sysfs_ops = { +const struct sysfs_ops brport_sysfs_ops = { .show = brport_show, .store = brport_store, };
samples/kobject/kset-example.c +1 -1
@@ -87,7 +87,7 @@ static ssize_t foo_attr_store(struct kobject *kobj, }/* Our custom sysfs_ops that we will associate with our ktype later on */ -static struct sysfs_ops foo_sysfs_ops = { +static const struct sysfs_ops foo_sysfs_ops = { .show = foo_attr_show, .store = foo_attr_store, };
Jens Axboe
Acked-byRe: [PATCH 29/31] Constify struct sysfs_ops for 2.6.32 v1
Quoted 4 lines · Emese Revfy
From: Emese Revfy <[email protected]>
Constify struct
sysfs_ops.
Per Dave Miller's suggestion, resend with proper CC list and patch format.
For the block parts:
Signature · 1 line
Jens Axboe
Pekka Enberg
Acked-byRe: [PATCH 29/31] Constify struct sysfs_ops for 2.6.32 v1
Quoted 9 lines · Jens Axboe
Quoted 4 lines · Emese Revfy
From: Emese Revfy <[email protected]>
Constify struct
sysfs_ops.
Per Dave Miller's suggestion, resend with proper CC list and patch format.For the block parts:
Acked-by Jens Axboe <[email protected]>
For the SLUB parts:
Hans J. Koch
Acked-byRe: [PATCH 29/31] Constify struct sysfs_ops for 2.6.32 v1
In reply to Emese RevfyQuoted 6 lines · Emese Revfy
From: Emese Revfy <[email protected]>
Constify struct
sysfs_ops.
Per Dave Miller's suggestion, resend with proper CC list and patch format.Signed-off-by Emese Revfy <[email protected]>
For the Userspace I/O part:
Quoted 1 line
---
[...]
Quoted 1 line
drivers/uio/uio.c | 4 ++--
[...]
Quoted 21 lines
drivers/uio/uio.c +2
-2@@ -129,7 +129,7 @@ static ssize_t map_type_show(struct kobject *kobj, struct attribute *attr,return entry->show (mem, buf); } -static struct sysfs_ops map_sysfs_ops = { +static const struct sysfs_ops map_sysfs_ops = { .show = map_type_show, };@@ -217,7 +217,7 @@ static ssize_t portio_type_show(struct kobject *kobj, struct attribute *attr,return entry->show (port, buf); } -static struct sysfs_ops portio_sysfs_ops = { +static const struct sysfs_ops portio_sysfs_ops = { .show = portio_type_show, };
Re: [PATCH 29/31] Constify struct sysfs_ops for 2.6.32 v1
In reply to Emese RevfyQuoted 8 lines · Emese Revfy
From: Emese Revfy <[email protected]>
Constify struct
sysfs_ops.Signed-off-by Emese Revfy <[email protected]>--- drivers/firmware/edd.c | 2 +- drivers/firmware/efivars.c | 2 +-
Signature · 3 lines
Matt Domsch Technology Strategist, Dell Office of the CTO linux.dell.com & www.dell.com/linux
Re: [PATCH 29/31] Constify struct sysfs_ops for 2.6.32 v1
In reply to Emese RevfyQuoted 7 lines · Emese Revfy
From: Emese Revfy <[email protected]>
Constify struct
sysfs_ops.Signed-off-by Emese Revfy <[email protected]>--- fs/dlm/lockspace.c | 2 +-
PATCH 30/31 Constify struct usb_mon_operations for 2.6.32 v1
In reply to Emese RevfyFrom: Emese Revfy <[email protected]>
Constify struct usb_mon_operations.
--- drivers/usb/core/hcd.c | 4 ++-- drivers/usb/core/hcd.h | 10 +++++----- drivers/usb/mon/mon_main.c | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-)
drivers/usb/core/hcd.c +2 -2
@@ -2216,7 +2216,7 @@ EXPORT_SYMBOL_GPL(usb_hcd_platform_shutdown);#if defined(CONFIG_USB_MON ) || defined(CONFIG_USB_MON_MODULE ) -struct usb_mon_operations *mon_ops; +const struct usb_mon_operations *mon_ops;/* * The registration is unlocked.
@@ -2226,7 +2226,7 @@ struct usb_mon_operations *mon_ops;* symbols from usbcore, usbcore gets referenced and cannot be unloaded first. */ -int usb_mon_register (struct usb_mon_operations *ops) +int usb_mon_register (const struct usb_mon_operations *ops) {if (mon_ops)
drivers/usb/core/hcd.h +5 -5
@@ -486,13 +486,13 @@ static inline void usbfs_cleanup(void) { }#if defined(CONFIG_USB_MON ) || defined(CONFIG_USB_MON_MODULE )struct usb_mon_operations { -void (*urb_submit)(struct usb_bus *bus,struct urb *urb); -void (*urb_submit_error)(struct usb_bus *bus,struct urb *urb,int err); -void (*urb_complete)(struct usb_bus *bus,struct urb *urb,int status); +void (*const urb_submit)(struct usb_bus *bus,struct urb *urb); +void (*const urb_submit_error)(struct usb_bus *bus,struct urb *urb,int err); +void (*const urb_complete)(struct usb_bus *bus,struct urb *urb,int status);/* void (*urb_unlink)(struct usb_bus *bus, struct urb *urb); */ }; -extern struct usb_mon_operations *mon_ops; +extern const struct usb_mon_operations *mon_ops;static inline void usbmon_urb_submit (struct usb_bus *bus,struct urb *urb) {
@@ -514,7 +514,7 @@ static inline void usbmon_urb_complete(struct usb_bus *bus, struct urb *urb, (*mon_ops->urb_complete)(bus, urb, status); } -int usb_mon_register (struct usb_mon_operations *ops); +int usb_mon_register (const struct usb_mon_operations *ops);void usb_mon_deregister (void );#else
drivers/usb/mon/mon_main.c +1 -1
@@ -238,7 +238,7 @@ static struct notifier_block mon_nb = {/* * Ops */ -static struct usb_mon_operations mon_ops_0 = { +static const struct usb_mon_operations mon_ops_0 = { .urb_submit = mon_submit, .urb_submit_error = mon_submit_error, .urb_complete = mon_complete,
PATCH 31/31 Constify struct wd_ops for 2.6.32 v1
In reply to Emese RevfyFrom: Emese Revfy <[email protected]>
Constify struct wd_ops with some exceptions.
--- arch/x86/kernel/cpu/perfctr-watchdog.c | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-)
arch/x86/kernel/cpu/perfctr-watchdog.c +7 -5
@@ -30,11 +30,11 @@ struct nmi_watchdog_ctlblk {/* Interface defining a CPU specific perfctr watchdog */ struct wd_ops { -int (*reserve)(void ); -void (*unreserve)(void ); -int (*setup)(unsigned nmi_hz); -void (*rearm)(struct nmi_watchdog_ctlblk *wd,unsigned nmi_hz); -void (*stop)(void ); +int (*const reserve)(void ); +void (*const unreserve)(void ); +int (*const setup)(unsigned nmi_hz); +void (*const rearm)(struct nmi_watchdog_ctlblk *wd,unsigned nmi_hz); +void (*const stop)(void );unsigned perfctr;unsigned evntsel;u64 checkbit;
@@ -645,6 +645,7 @@ static const struct wd_ops p4_wd_ops = {#define ARCH_PERFMON_NMI_EVENT_SEL ARCH_PERFMON_UNHALTED_CORE_CYCLES_SEL#define ARCH_PERFMON_NMI_EVENT_UMASK ARCH_PERFMON_UNHALTED_CORE_CYCLES_UMASK +/* cannot be const */ static struct wd_ops intel_arch_wd_ops;static int setup_intel_arch_watchdog (unsigned nmi_hz)
@@ -697,6 +698,7 @@ static int setup_intel_arch_watchdog(unsigned nmi_hz)return 1 ; } +/* cannot be const */ static struct wd_ops intel_arch_wd_ops__read_mostly = { .reserve = single_msr_reserve, .unreserve = single_msr_unreserve,