The structure is always read-only due to its placement in the read-only
section __modver. Reflect this at its usage sites.
Also prepare for the const handling of 'struct module_attribute' itself.

Signed-off-by: Thomas Weißschuh <li...@weissschuh.net>
---
 include/linux/module.h | 2 +-
 kernel/params.c        | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/linux/module.h b/include/linux/module.h
index 
94acbacdcdf189e27013088de2202bccac9717e0..de2f2293204a4681072fba9ea3439e5582c81fbf
 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -275,7 +275,7 @@ extern typeof(name) __mod_device_table__##type##__##name    
        \
 #else
 #define MODULE_VERSION(_version)                                       \
        MODULE_INFO(version, _version);                                 \
-       static struct module_version_attribute __modver_attr            \
+       static const struct module_version_attribute __modver_attr      \
                __used __section("__modver")                            \
                __aligned(__alignof__(struct module_version_attribute)) \
                = {                                                     \
diff --git a/kernel/params.c b/kernel/params.c
index 
e90733824528eacc77046f85c9ab4243467ca841..763261a7fef94d02503fa0d365d155c223fc382b
 100644
--- a/kernel/params.c
+++ b/kernel/params.c
@@ -860,8 +860,8 @@ static void __init param_sysfs_builtin(void)
 ssize_t __modver_version_show(struct module_attribute *mattr,
                              struct module_kobject *mk, char *buf)
 {
-       struct module_version_attribute *vattr =
-               container_of(mattr, struct module_version_attribute, mattr);
+       const struct module_version_attribute *vattr =
+               container_of_const(mattr, struct module_version_attribute, 
mattr);
 
        return scnprintf(buf, PAGE_SIZE, "%s\n", vattr->version);
 }

-- 
2.47.1


Reply via email to