mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
Driver core: Constify struct sysfs_ops in struct kobj_type
Constify struct sysfs_ops. This is part of the ops structure constification effort started by Arjan van de Ven et al. Benefits of this constification: * prevents modification of data that is shared (referenced) by many other structure instances at runtime * detects/prevents accidental (but not intentional) modification attempts on archs that enforce read-only kernel data at runtime * potentially better optimized code as the compiler can assume that the const data cannot be changed * the compiler/linker move const data into .rodata and therefore exclude them from false sharing Signed-off-by: Emese Revfy <re.emese@gmail.com> Acked-by: David Teigland <teigland@redhat.com> Acked-by: Matt Domsch <Matt_Domsch@dell.com> Acked-by: Maciej Sosnowski <maciej.sosnowski@intel.com> Acked-by: Hans J. Koch <hjk@linutronix.de> Acked-by: Pekka Enberg <penberg@cs.helsinki.fi> Acked-by: Jens Axboe <jens.axboe@oracle.com> Acked-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
6c1733aca0
commit
52cf25d0ab
@ -266,7 +266,7 @@ kobj_type:
|
|||||||
|
|
||||||
struct kobj_type {
|
struct kobj_type {
|
||||||
void (*release)(struct kobject *);
|
void (*release)(struct kobject *);
|
||||||
struct sysfs_ops *sysfs_ops;
|
const struct sysfs_ops *sysfs_ops;
|
||||||
struct attribute **default_attrs;
|
struct attribute **default_attrs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -282,7 +282,7 @@ static ssize_t cache_show(struct kobject * kobj, struct attribute * attr, char *
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops cache_sysfs_ops = {
|
static const struct sysfs_ops cache_sysfs_ops = {
|
||||||
.show = cache_show
|
.show = cache_show
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -642,7 +642,7 @@ static struct kobj_attribute *cache_index_opt_attrs[] = {
|
|||||||
&cache_assoc_attr,
|
&cache_assoc_attr,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct sysfs_ops cache_index_ops = {
|
static const struct sysfs_ops cache_index_ops = {
|
||||||
.show = cache_index_show,
|
.show = cache_index_show,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -326,7 +326,7 @@ static struct attribute *sq_sysfs_attrs[] = {
|
|||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct sysfs_ops sq_sysfs_ops = {
|
static const struct sysfs_ops sq_sysfs_ops = {
|
||||||
.show = sq_sysfs_show,
|
.show = sq_sysfs_show,
|
||||||
.store = sq_sysfs_store,
|
.store = sq_sysfs_store,
|
||||||
};
|
};
|
||||||
|
@ -903,7 +903,7 @@ static ssize_t store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops sysfs_ops = {
|
static const struct sysfs_ops sysfs_ops = {
|
||||||
.show = show,
|
.show = show,
|
||||||
.store = store,
|
.store = store,
|
||||||
};
|
};
|
||||||
|
@ -388,7 +388,7 @@ static ssize_t store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops threshold_ops = {
|
static const struct sysfs_ops threshold_ops = {
|
||||||
.show = show,
|
.show = show,
|
||||||
.store = store,
|
.store = store,
|
||||||
};
|
};
|
||||||
|
@ -278,7 +278,7 @@ static struct attribute *integrity_attrs[] = {
|
|||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct sysfs_ops integrity_ops = {
|
static const struct sysfs_ops integrity_ops = {
|
||||||
.show = &integrity_attr_show,
|
.show = &integrity_attr_show,
|
||||||
.store = &integrity_attr_store,
|
.store = &integrity_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -450,7 +450,7 @@ static void blk_release_queue(struct kobject *kobj)
|
|||||||
kmem_cache_free(blk_requestq_cachep, q);
|
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,
|
.show = queue_attr_show,
|
||||||
.store = queue_attr_store,
|
.store = queue_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -892,7 +892,7 @@ elv_attr_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops elv_sysfs_ops = {
|
static const struct sysfs_ops elv_sysfs_ops = {
|
||||||
.show = elv_attr_show,
|
.show = elv_attr_show,
|
||||||
.store = elv_attr_store,
|
.store = elv_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -70,7 +70,7 @@ static ssize_t drv_attr_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops driver_sysfs_ops = {
|
static const struct sysfs_ops driver_sysfs_ops = {
|
||||||
.show = drv_attr_show,
|
.show = drv_attr_show,
|
||||||
.store = drv_attr_store,
|
.store = drv_attr_store,
|
||||||
};
|
};
|
||||||
@ -115,7 +115,7 @@ static ssize_t bus_attr_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops bus_sysfs_ops = {
|
static const struct sysfs_ops bus_sysfs_ops = {
|
||||||
.show = bus_attr_show,
|
.show = bus_attr_show,
|
||||||
.store = bus_attr_store,
|
.store = bus_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -63,7 +63,7 @@ static void class_release(struct kobject *kobj)
|
|||||||
kfree(cp);
|
kfree(cp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops class_sysfs_ops = {
|
static const struct sysfs_ops class_sysfs_ops = {
|
||||||
.show = class_attr_show,
|
.show = class_attr_show,
|
||||||
.store = class_attr_store,
|
.store = class_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -100,7 +100,7 @@ static ssize_t dev_attr_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops dev_sysfs_ops = {
|
static const struct sysfs_ops dev_sysfs_ops = {
|
||||||
.show = dev_attr_show,
|
.show = dev_attr_show,
|
||||||
.store = dev_attr_store,
|
.store = dev_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -54,7 +54,7 @@ sysdev_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops sysfs_ops = {
|
static const struct sysfs_ops sysfs_ops = {
|
||||||
.show = sysdev_show,
|
.show = sysdev_show,
|
||||||
.store = sysdev_store,
|
.store = sysdev_store,
|
||||||
};
|
};
|
||||||
@ -104,7 +104,7 @@ static ssize_t sysdev_class_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops sysfs_class_ops = {
|
static const struct sysfs_ops sysfs_class_ops = {
|
||||||
.show = sysdev_class_show,
|
.show = sysdev_class_show,
|
||||||
.store = sysdev_class_store,
|
.store = sysdev_class_store,
|
||||||
};
|
};
|
||||||
|
@ -284,7 +284,7 @@ static ssize_t kobj_pkt_store(struct kobject *kobj,
|
|||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops kobj_pkt_ops = {
|
static const struct sysfs_ops kobj_pkt_ops = {
|
||||||
.show = kobj_pkt_show,
|
.show = kobj_pkt_show,
|
||||||
.store = kobj_pkt_store
|
.store = kobj_pkt_store
|
||||||
};
|
};
|
||||||
|
@ -766,7 +766,7 @@ static void cpufreq_sysfs_release(struct kobject *kobj)
|
|||||||
complete(&policy->kobj_unregister);
|
complete(&policy->kobj_unregister);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops sysfs_ops = {
|
static const struct sysfs_ops sysfs_ops = {
|
||||||
.show = show,
|
.show = show,
|
||||||
.store = store,
|
.store = store,
|
||||||
};
|
};
|
||||||
|
@ -195,7 +195,7 @@ static ssize_t cpuidle_store(struct kobject * kobj, struct attribute * attr,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops cpuidle_sysfs_ops = {
|
static const struct sysfs_ops cpuidle_sysfs_ops = {
|
||||||
.show = cpuidle_show,
|
.show = cpuidle_show,
|
||||||
.store = cpuidle_store,
|
.store = cpuidle_store,
|
||||||
};
|
};
|
||||||
@ -281,7 +281,7 @@ static ssize_t cpuidle_state_show(struct kobject * kobj,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops cpuidle_state_sysfs_ops = {
|
static const struct sysfs_ops cpuidle_state_sysfs_ops = {
|
||||||
.show = cpuidle_state_show,
|
.show = cpuidle_state_show,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1138,7 +1138,7 @@ ioat_attr_show(struct kobject *kobj, struct attribute *attr, char *page)
|
|||||||
return entry->show(&chan->common, page);
|
return entry->show(&chan->common, page);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sysfs_ops ioat_sysfs_ops = {
|
const struct sysfs_ops ioat_sysfs_ops = {
|
||||||
.show = ioat_attr_show,
|
.show = ioat_attr_show,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -346,7 +346,7 @@ bool ioat_cleanup_preamble(struct ioat_chan_common *chan,
|
|||||||
unsigned long *phys_complete);
|
unsigned long *phys_complete);
|
||||||
void ioat_kobject_add(struct ioatdma_device *device, struct kobj_type *type);
|
void ioat_kobject_add(struct ioatdma_device *device, struct kobj_type *type);
|
||||||
void ioat_kobject_del(struct ioatdma_device *device);
|
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_version_attr;
|
||||||
extern struct ioat_sysfs_entry ioat_cap_attr;
|
extern struct ioat_sysfs_entry ioat_cap_attr;
|
||||||
#endif /* IOATDMA_H */
|
#endif /* IOATDMA_H */
|
||||||
|
@ -137,7 +137,7 @@ static ssize_t edac_dev_ctl_info_store(struct kobject *kobj,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* edac_dev file operations for an 'ctl_info' */
|
/* 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,
|
.show = edac_dev_ctl_info_show,
|
||||||
.store = edac_dev_ctl_info_store
|
.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' */
|
/* 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,
|
.show = edac_dev_instance_show,
|
||||||
.store = edac_dev_instance_store
|
.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' */
|
/* 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,
|
.show = edac_dev_block_show,
|
||||||
.store = edac_dev_block_store
|
.store = edac_dev_block_store
|
||||||
};
|
};
|
||||||
|
@ -245,7 +245,7 @@ static ssize_t csrowdev_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops csrowfs_ops = {
|
static const struct sysfs_ops csrowfs_ops = {
|
||||||
.show = csrowdev_show,
|
.show = csrowdev_show,
|
||||||
.store = csrowdev_store
|
.store = csrowdev_store
|
||||||
};
|
};
|
||||||
@ -575,7 +575,7 @@ static ssize_t mcidev_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Intermediate show/store table */
|
/* Intermediate show/store table */
|
||||||
static struct sysfs_ops mci_ops = {
|
static const struct sysfs_ops mci_ops = {
|
||||||
.show = mcidev_show,
|
.show = mcidev_show,
|
||||||
.store = mcidev_store
|
.store = mcidev_store
|
||||||
};
|
};
|
||||||
|
@ -121,7 +121,7 @@ static ssize_t edac_pci_instance_store(struct kobject *kobj,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* fs_ops table */
|
/* fs_ops table */
|
||||||
static struct sysfs_ops pci_instance_ops = {
|
static const struct sysfs_ops pci_instance_ops = {
|
||||||
.show = edac_pci_instance_show,
|
.show = edac_pci_instance_show,
|
||||||
.store = edac_pci_instance_store
|
.store = edac_pci_instance_store
|
||||||
};
|
};
|
||||||
@ -261,7 +261,7 @@ static ssize_t edac_pci_dev_store(struct kobject *kobj,
|
|||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops edac_pci_sysfs_ops = {
|
static const struct sysfs_ops edac_pci_sysfs_ops = {
|
||||||
.show = edac_pci_dev_show,
|
.show = edac_pci_dev_show,
|
||||||
.store = edac_pci_dev_store
|
.store = edac_pci_dev_store
|
||||||
};
|
};
|
||||||
|
@ -122,7 +122,7 @@ edd_attr_show(struct kobject * kobj, struct attribute *attr, char *buf)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops edd_attr_ops = {
|
static const struct sysfs_ops edd_attr_ops = {
|
||||||
.show = edd_attr_show,
|
.show = edd_attr_show,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -362,7 +362,7 @@ static ssize_t efivar_attr_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops efivar_attr_ops = {
|
static const struct sysfs_ops efivar_attr_ops = {
|
||||||
.show = efivar_attr_show,
|
.show = efivar_attr_show,
|
||||||
.store = efivar_attr_store,
|
.store = efivar_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -519,7 +519,7 @@ static ssize_t ibft_show_attribute(struct kobject *kobj,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops ibft_attr_ops = {
|
static const struct sysfs_ops ibft_attr_ops = {
|
||||||
.show = ibft_show_attribute,
|
.show = ibft_show_attribute,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ static struct attribute *def_attrs[] = {
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct sysfs_ops memmap_attr_ops = {
|
static const struct sysfs_ops memmap_attr_ops = {
|
||||||
.show = memmap_attr_show,
|
.show = memmap_attr_show,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ static struct attribute *ttm_bo_global_attrs[] = {
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct sysfs_ops ttm_bo_global_ops = {
|
static const struct sysfs_ops ttm_bo_global_ops = {
|
||||||
.show = &ttm_bo_global_show
|
.show = &ttm_bo_global_show
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ static struct attribute *ttm_mem_zone_attrs[] = {
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct sysfs_ops ttm_mem_zone_ops = {
|
static const struct sysfs_ops ttm_mem_zone_ops = {
|
||||||
.show = &ttm_mem_zone_show,
|
.show = &ttm_mem_zone_show,
|
||||||
.store = &ttm_mem_zone_store
|
.store = &ttm_mem_zone_store
|
||||||
};
|
};
|
||||||
|
@ -3597,7 +3597,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr,
|
|||||||
atomic_long_read(&group->counter[cm_attr->index]));
|
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
|
.show = cm_show_counter
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ static ssize_t port_attr_show(struct kobject *kobj,
|
|||||||
return port_attr->show(p, port_attr, buf);
|
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
|
.show = port_attr_show
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ static struct attribute *dm_attrs[] = {
|
|||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct sysfs_ops dm_sysfs_ops = {
|
static const struct sysfs_ops dm_sysfs_ops = {
|
||||||
.show = dm_attr_show,
|
.show = dm_attr_show,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2642,7 +2642,7 @@ static void rdev_free(struct kobject *ko)
|
|||||||
mdk_rdev_t *rdev = container_of(ko, mdk_rdev_t, kobj);
|
mdk_rdev_t *rdev = container_of(ko, mdk_rdev_t, kobj);
|
||||||
kfree(rdev);
|
kfree(rdev);
|
||||||
}
|
}
|
||||||
static struct sysfs_ops rdev_sysfs_ops = {
|
static const struct sysfs_ops rdev_sysfs_ops = {
|
||||||
.show = rdev_attr_show,
|
.show = rdev_attr_show,
|
||||||
.store = rdev_attr_store,
|
.store = rdev_attr_store,
|
||||||
};
|
};
|
||||||
@ -4059,7 +4059,7 @@ static void md_free(struct kobject *ko)
|
|||||||
kfree(mddev);
|
kfree(mddev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops md_sysfs_ops = {
|
static const struct sysfs_ops md_sysfs_ops = {
|
||||||
.show = md_attr_show,
|
.show = md_attr_show,
|
||||||
.store = md_attr_store,
|
.store = md_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -1577,7 +1577,7 @@ static struct attribute * veth_pool_attrs[] = {
|
|||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct sysfs_ops veth_pool_ops = {
|
static const struct sysfs_ops veth_pool_ops = {
|
||||||
.show = veth_pool_show,
|
.show = veth_pool_show,
|
||||||
.store = veth_pool_store,
|
.store = veth_pool_store,
|
||||||
};
|
};
|
||||||
|
@ -384,7 +384,7 @@ static struct attribute *veth_cnx_default_attrs[] = {
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct sysfs_ops veth_cnx_sysfs_ops = {
|
static const struct sysfs_ops veth_cnx_sysfs_ops = {
|
||||||
.show = veth_cnx_attribute_show
|
.show = veth_cnx_attribute_show
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -441,7 +441,7 @@ static struct attribute *veth_port_default_attrs[] = {
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct sysfs_ops veth_port_sysfs_ops = {
|
static const struct sysfs_ops veth_port_sysfs_ops = {
|
||||||
.show = veth_port_attribute_show
|
.show = veth_port_attribute_show
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -481,7 +481,7 @@ pdcspath_attr_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops pdcspath_attr_ops = {
|
static const struct sysfs_ops pdcspath_attr_ops = {
|
||||||
.show = pdcspath_attr_show,
|
.show = pdcspath_attr_show,
|
||||||
.store = pdcspath_attr_store,
|
.store = pdcspath_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -73,7 +73,7 @@ static void legacy_release(struct kobject *kobj)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct kobj_type legacy_ktype = {
|
static struct kobj_type legacy_ktype = {
|
||||||
.sysfs_ops = &(struct sysfs_ops){
|
.sysfs_ops = &(const struct sysfs_ops){
|
||||||
.store = legacy_store, .show = legacy_show
|
.store = legacy_store, .show = legacy_show
|
||||||
},
|
},
|
||||||
.release = &legacy_release,
|
.release = &legacy_release,
|
||||||
|
@ -29,7 +29,7 @@ static ssize_t pci_slot_attr_store(struct kobject *kobj,
|
|||||||
return attribute->store ? attribute->store(slot, buf, len) : -EIO;
|
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,
|
.show = pci_slot_attr_show,
|
||||||
.store = pci_slot_attr_store,
|
.store = pci_slot_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -129,7 +129,7 @@ static ssize_t map_type_show(struct kobject *kobj, struct attribute *attr,
|
|||||||
return entry->show(mem, buf);
|
return entry->show(mem, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops map_sysfs_ops = {
|
static const struct sysfs_ops map_sysfs_ops = {
|
||||||
.show = map_type_show,
|
.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);
|
return entry->show(port, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops portio_sysfs_ops = {
|
static const struct sysfs_ops portio_sysfs_ops = {
|
||||||
.show = portio_type_show,
|
.show = portio_type_show,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -615,8 +615,7 @@ ssize_t wlp_wss_attr_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
static const struct sysfs_ops wss_sysfs_ops = {
|
||||||
struct sysfs_ops wss_sysfs_ops = {
|
|
||||||
.show = wlp_wss_attr_show,
|
.show = wlp_wss_attr_show,
|
||||||
.store = wlp_wss_attr_store,
|
.store = wlp_wss_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -341,7 +341,7 @@ static ssize_t manager_attr_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return manager_attr->store(manager, buf, size);
|
return manager_attr->store(manager, buf, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops manager_sysfs_ops = {
|
static const struct sysfs_ops manager_sysfs_ops = {
|
||||||
.show = manager_attr_show,
|
.show = manager_attr_show,
|
||||||
.store = manager_attr_store,
|
.store = manager_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -320,7 +320,7 @@ static ssize_t overlay_attr_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return overlay_attr->store(overlay, buf, size);
|
return overlay_attr->store(overlay, buf, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops overlay_sysfs_ops = {
|
static const struct sysfs_ops overlay_sysfs_ops = {
|
||||||
.show = overlay_attr_show,
|
.show = overlay_attr_show,
|
||||||
.store = overlay_attr_store,
|
.store = overlay_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -426,7 +426,7 @@ static ssize_t hyp_sysfs_store(struct kobject *kobj,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops hyp_sysfs_ops = {
|
static const struct sysfs_ops hyp_sysfs_ops = {
|
||||||
.show = hyp_sysfs_show,
|
.show = hyp_sysfs_show,
|
||||||
.store = hyp_sysfs_store,
|
.store = hyp_sysfs_store,
|
||||||
};
|
};
|
||||||
|
@ -164,12 +164,12 @@ static void btrfs_root_release(struct kobject *kobj)
|
|||||||
complete(&root->kobj_unregister);
|
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,
|
.show = btrfs_super_attr_show,
|
||||||
.store = btrfs_super_attr_store,
|
.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,
|
.show = btrfs_root_attr_show,
|
||||||
.store = btrfs_root_attr_store,
|
.store = btrfs_root_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -148,7 +148,7 @@ static void lockspace_kobj_release(struct kobject *k)
|
|||||||
kfree(ls);
|
kfree(ls);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops dlm_attr_ops = {
|
static const struct sysfs_ops dlm_attr_ops = {
|
||||||
.show = dlm_attr_show,
|
.show = dlm_attr_show,
|
||||||
.store = dlm_attr_store,
|
.store = dlm_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -2358,7 +2358,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,
|
.show = ext4_attr_show,
|
||||||
.store = ext4_attr_store,
|
.store = ext4_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -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;
|
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,
|
.show = gfs2_attr_show,
|
||||||
.store = gfs2_attr_store,
|
.store = gfs2_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -136,7 +136,7 @@ static ssize_t mlog_store(struct kobject *obj, struct attribute *attr,
|
|||||||
return mlog_mask_store(mlog_attr->mask, buf, count);
|
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,
|
.show = mlog_show,
|
||||||
.store = mlog_store,
|
.store = mlog_store,
|
||||||
};
|
};
|
||||||
|
@ -53,7 +53,7 @@ struct sysfs_buffer {
|
|||||||
size_t count;
|
size_t count;
|
||||||
loff_t pos;
|
loff_t pos;
|
||||||
char * page;
|
char * page;
|
||||||
struct sysfs_ops * ops;
|
const struct sysfs_ops * ops;
|
||||||
struct mutex mutex;
|
struct mutex mutex;
|
||||||
int needs_read_fill;
|
int needs_read_fill;
|
||||||
int event;
|
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 sysfs_dirent *attr_sd = dentry->d_fsdata;
|
||||||
struct kobject *kobj = attr_sd->s_parent->s_dir.kobj;
|
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;
|
int ret = 0;
|
||||||
ssize_t count;
|
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 sysfs_dirent *attr_sd = dentry->d_fsdata;
|
||||||
struct kobject *kobj = attr_sd->s_parent->s_dir.kobj;
|
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;
|
int rc;
|
||||||
|
|
||||||
/* need attr_sd for attr and ops, its parent for kobj */
|
/* 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 sysfs_dirent *attr_sd = file->f_path.dentry->d_fsdata;
|
||||||
struct kobject *kobj = attr_sd->s_parent->s_dir.kobj;
|
struct kobject *kobj = attr_sd->s_parent->s_dir.kobj;
|
||||||
struct sysfs_buffer *buffer;
|
struct sysfs_buffer *buffer;
|
||||||
struct sysfs_ops *ops;
|
const struct sysfs_ops *ops;
|
||||||
int error = -EACCES;
|
int error = -EACCES;
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ extern char *kobject_get_path(struct kobject *kobj, gfp_t flag);
|
|||||||
|
|
||||||
struct kobj_type {
|
struct kobj_type {
|
||||||
void (*release)(struct kobject *kobj);
|
void (*release)(struct kobject *kobj);
|
||||||
struct sysfs_ops *sysfs_ops;
|
const struct sysfs_ops *sysfs_ops;
|
||||||
struct attribute **default_attrs;
|
struct attribute **default_attrs;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -132,7 +132,7 @@ struct kobj_attribute {
|
|||||||
const char *buf, size_t count);
|
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.
|
* struct kset - a set of kobjects of a specific type, belonging to a specific subsystem.
|
||||||
|
@ -722,7 +722,7 @@ static ssize_t module_attr_store(struct kobject *kobj,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops module_sysfs_ops = {
|
static const struct sysfs_ops module_sysfs_ops = {
|
||||||
.show = module_attr_show,
|
.show = module_attr_show,
|
||||||
.store = module_attr_store,
|
.store = module_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -700,7 +700,7 @@ static ssize_t kobj_attr_store(struct kobject *kobj, struct attribute *attr,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sysfs_ops kobj_sysfs_ops = {
|
const struct sysfs_ops kobj_sysfs_ops = {
|
||||||
.show = kobj_attr_show,
|
.show = kobj_attr_show,
|
||||||
.store = kobj_attr_store,
|
.store = kobj_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -4390,7 +4390,7 @@ static void kmem_cache_release(struct kobject *kobj)
|
|||||||
kfree(s);
|
kfree(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sysfs_ops slab_sysfs_ops = {
|
static const struct sysfs_ops slab_sysfs_ops = {
|
||||||
.show = slab_attr_show,
|
.show = slab_attr_show,
|
||||||
.store = slab_attr_store,
|
.store = slab_attr_store,
|
||||||
};
|
};
|
||||||
|
@ -423,7 +423,7 @@ extern void br_ifinfo_notify(int event, struct net_bridge_port *port);
|
|||||||
|
|
||||||
#ifdef CONFIG_SYSFS
|
#ifdef CONFIG_SYSFS
|
||||||
/* br_sysfs_if.c */
|
/* 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);
|
extern int br_sysfs_addif(struct net_bridge_port *p);
|
||||||
|
|
||||||
/* br_sysfs_br.c */
|
/* br_sysfs_br.c */
|
||||||
|
@ -238,7 +238,7 @@ static ssize_t brport_store(struct kobject * kobj,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sysfs_ops brport_sysfs_ops = {
|
const struct sysfs_ops brport_sysfs_ops = {
|
||||||
.show = brport_show,
|
.show = brport_show,
|
||||||
.store = brport_store,
|
.store = brport_store,
|
||||||
};
|
};
|
||||||
|
@ -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 */
|
/* 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,
|
.show = foo_attr_show,
|
||||||
.store = foo_attr_store,
|
.store = foo_attr_store,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user