Commit 9cd43611 authored by Emese Revfy's avatar Emese Revfy Committed by Greg Kroah-Hartman

kobject: Constify struct kset_uevent_ops

Constify struct kset_uevent_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: default avatarEmese Revfy <re.emese@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 985fc176
...@@ -154,7 +154,7 @@ static int bus_uevent_filter(struct kset *kset, struct kobject *kobj) ...@@ -154,7 +154,7 @@ static int bus_uevent_filter(struct kset *kset, struct kobject *kobj)
return 0; return 0;
} }
static struct kset_uevent_ops bus_uevent_ops = { static const struct kset_uevent_ops bus_uevent_ops = {
.filter = bus_uevent_filter, .filter = bus_uevent_filter,
}; };
......
...@@ -252,7 +252,7 @@ static int dev_uevent(struct kset *kset, struct kobject *kobj, ...@@ -252,7 +252,7 @@ static int dev_uevent(struct kset *kset, struct kobject *kobj,
return retval; return retval;
} }
static struct kset_uevent_ops device_uevent_ops = { static const struct kset_uevent_ops device_uevent_ops = {
.filter = dev_uevent_filter, .filter = dev_uevent_filter,
.name = dev_uevent_name, .name = dev_uevent_name,
.uevent = dev_uevent, .uevent = dev_uevent,
......
...@@ -44,7 +44,7 @@ static int memory_uevent(struct kset *kset, struct kobject *obj, struct kobj_uev ...@@ -44,7 +44,7 @@ static int memory_uevent(struct kset *kset, struct kobject *obj, struct kobj_uev
return retval; return retval;
} }
static struct kset_uevent_ops memory_uevent_ops = { static const struct kset_uevent_ops memory_uevent_ops = {
.name = memory_uevent_name, .name = memory_uevent_name,
.uevent = memory_uevent, .uevent = memory_uevent,
}; };
......
...@@ -574,7 +574,7 @@ static int gfs2_uevent(struct kset *kset, struct kobject *kobj, ...@@ -574,7 +574,7 @@ static int gfs2_uevent(struct kset *kset, struct kobject *kobj,
return 0; return 0;
} }
static struct kset_uevent_ops gfs2_uevent_ops = { static const struct kset_uevent_ops gfs2_uevent_ops = {
.uevent = gfs2_uevent, .uevent = gfs2_uevent,
}; };
......
...@@ -118,9 +118,9 @@ struct kobj_uevent_env { ...@@ -118,9 +118,9 @@ struct kobj_uevent_env {
}; };
struct kset_uevent_ops { struct kset_uevent_ops {
int (*filter)(struct kset *kset, struct kobject *kobj); int (* const filter)(struct kset *kset, struct kobject *kobj);
const char *(*name)(struct kset *kset, struct kobject *kobj); const char *(* const name)(struct kset *kset, struct kobject *kobj);
int (*uevent)(struct kset *kset, struct kobject *kobj, int (* const uevent)(struct kset *kset, struct kobject *kobj,
struct kobj_uevent_env *env); struct kobj_uevent_env *env);
}; };
...@@ -155,14 +155,14 @@ struct kset { ...@@ -155,14 +155,14 @@ struct kset {
struct list_head list; struct list_head list;
spinlock_t list_lock; spinlock_t list_lock;
struct kobject kobj; struct kobject kobj;
struct kset_uevent_ops *uevent_ops; const struct kset_uevent_ops *uevent_ops;
}; };
extern void kset_init(struct kset *kset); extern void kset_init(struct kset *kset);
extern int __must_check kset_register(struct kset *kset); extern int __must_check kset_register(struct kset *kset);
extern void kset_unregister(struct kset *kset); extern void kset_unregister(struct kset *kset);
extern struct kset * __must_check kset_create_and_add(const char *name, extern struct kset * __must_check kset_create_and_add(const char *name,
struct kset_uevent_ops *u, const struct kset_uevent_ops *u,
struct kobject *parent_kobj); struct kobject *parent_kobj);
static inline struct kset *to_kset(struct kobject *kobj) static inline struct kset *to_kset(struct kobject *kobj)
......
...@@ -736,7 +736,7 @@ static int uevent_filter(struct kset *kset, struct kobject *kobj) ...@@ -736,7 +736,7 @@ static int uevent_filter(struct kset *kset, struct kobject *kobj)
return 0; return 0;
} }
static struct kset_uevent_ops module_uevent_ops = { static const struct kset_uevent_ops module_uevent_ops = {
.filter = uevent_filter, .filter = uevent_filter,
}; };
......
...@@ -789,7 +789,7 @@ static struct kobj_type kset_ktype = { ...@@ -789,7 +789,7 @@ static struct kobj_type kset_ktype = {
* If the kset was not able to be created, NULL will be returned. * If the kset was not able to be created, NULL will be returned.
*/ */
static struct kset *kset_create(const char *name, static struct kset *kset_create(const char *name,
struct kset_uevent_ops *uevent_ops, const struct kset_uevent_ops *uevent_ops,
struct kobject *parent_kobj) struct kobject *parent_kobj)
{ {
struct kset *kset; struct kset *kset;
...@@ -832,7 +832,7 @@ static struct kset *kset_create(const char *name, ...@@ -832,7 +832,7 @@ static struct kset *kset_create(const char *name,
* If the kset was not able to be created, NULL will be returned. * If the kset was not able to be created, NULL will be returned.
*/ */
struct kset *kset_create_and_add(const char *name, struct kset *kset_create_and_add(const char *name,
struct kset_uevent_ops *uevent_ops, const struct kset_uevent_ops *uevent_ops,
struct kobject *parent_kobj) struct kobject *parent_kobj)
{ {
struct kset *kset; struct kset *kset;
......
...@@ -95,7 +95,7 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, ...@@ -95,7 +95,7 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
const char *subsystem; const char *subsystem;
struct kobject *top_kobj; struct kobject *top_kobj;
struct kset *kset; struct kset *kset;
struct kset_uevent_ops *uevent_ops; const struct kset_uevent_ops *uevent_ops;
u64 seq; u64 seq;
int i = 0; int i = 0;
int retval = 0; int retval = 0;
......
...@@ -4409,7 +4409,7 @@ static int uevent_filter(struct kset *kset, struct kobject *kobj) ...@@ -4409,7 +4409,7 @@ static int uevent_filter(struct kset *kset, struct kobject *kobj)
return 0; return 0;
} }
static struct kset_uevent_ops slab_uevent_ops = { static const struct kset_uevent_ops slab_uevent_ops = {
.filter = uevent_filter, .filter = uevent_filter,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment