]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
module: Handle 'struct module_version_attribute' as const
authorThomas Weißschuh <linux@weissschuh.net>
Mon, 16 Dec 2024 17:25:09 +0000 (18:25 +0100)
committerPetr Pavlu <petr.pavlu@suse.com>
Sun, 26 Jan 2025 12:05:23 +0000 (13:05 +0100)
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 <linux@weissschuh.net>
Reviewed-by: Petr Pavlu <petr.pavlu@suse.com>
Link: https://lore.kernel.org/r/20241216-sysfs-const-attr-module-v1-2-3790b53e0abf@weissschuh.net
Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
include/linux/module.h
kernel/params.c

index b3a643435357986f3f9fe852260ca07f371cf86c..5001c166c74f4179359b6b997b632504e22e8de7 100644 (file)
@@ -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)) \
                = {                                                     \
index e90733824528eacc77046f85c9ab4243467ca841..763261a7fef94d02503fa0d365d155c223fc382b 100644 (file)
@@ -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);
 }