]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
of: Constify 'struct bin_attribute'
authorThomas Weißschuh <linux@weissschuh.net>
Sun, 22 Dec 2024 20:30:25 +0000 (21:30 +0100)
committerRob Herring (Arm) <robh@kernel.org>
Tue, 31 Dec 2024 13:55:16 +0000 (07:55 -0600)
The sysfs core now allows instances of 'struct bin_attribute' to be
moved into read-only memory. Make use of that to protect them against
accidental or malicious modifications.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link: https://lore.kernel.org/r/20241222-sysfs-const-bin_attr-of-v1-1-99cc2e8c2a55@weissschuh.net
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
drivers/of/kobj.c

index cab9b169dc67f90a5ae8a97bb5d9fbf3f13559ef..aa887166f0d21030d620d43c864ca76cde1c6d05 100644 (file)
@@ -29,7 +29,7 @@ const struct kobj_type of_node_ktype = {
 };
 
 static ssize_t of_node_property_read(struct file *filp, struct kobject *kobj,
-                               struct bin_attribute *bin_attr, char *buf,
+                               const struct bin_attribute *bin_attr, char *buf,
                                loff_t offset, size_t count)
 {
        struct property *pp = container_of(bin_attr, struct property, attr);
@@ -77,7 +77,7 @@ int __of_add_property_sysfs(struct device_node *np, struct property *pp)
        pp->attr.attr.name = safe_name(&np->kobj, pp->name);
        pp->attr.attr.mode = secure ? 0400 : 0444;
        pp->attr.size = secure ? 0 : pp->length;
-       pp->attr.read = of_node_property_read;
+       pp->attr.read_new = of_node_property_read;
 
        rc = sysfs_create_bin_file(&np->kobj, &pp->attr);
        WARN(rc, "error adding attribute %s to node %pOF\n", pp->name, np);