]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ACPI: sysfs: Constify 'struct bin_attribute'
authorThomas Weißschuh <linux@weissschuh.net>
Mon, 2 Dec 2024 19:04:11 +0000 (20:04 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 10 Dec 2024 18:34:41 +0000 (19:34 +0100)
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://patch.msgid.link/20241202-sysfs-const-bin_attr-acpi-v1-3-78f3b38d350d@weissschuh.net
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/sysfs.c

index 687524b5008592c58c021f9c7981b76eaa58038f..a48ebbf768f91ab354cd276f1b4dda2c063ef9b5 100644 (file)
@@ -319,7 +319,7 @@ struct acpi_data_attr {
 };
 
 static ssize_t acpi_table_show(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 acpi_table_attr *table_attr =
@@ -372,7 +372,7 @@ static int acpi_table_attr_init(struct kobject *tables_obj,
        }
 
        table_attr->attr.size = table_header->length;
-       table_attr->attr.read = acpi_table_show;
+       table_attr->attr.read_new = acpi_table_show;
        table_attr->attr.attr.name = table_attr->filename;
        table_attr->attr.attr.mode = 0400;
 
@@ -412,7 +412,7 @@ acpi_status acpi_sysfs_table_handler(u32 event, void *table, void *context)
 }
 
 static ssize_t acpi_data_show(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 acpi_data_attr *data_attr;
@@ -495,7 +495,7 @@ static int acpi_table_data_init(struct acpi_table_header *th)
                        if (!data_attr)
                                return -ENOMEM;
                        sysfs_attr_init(&data_attr->attr.attr);
-                       data_attr->attr.read = acpi_data_show;
+                       data_attr->attr.read_new = acpi_data_show;
                        data_attr->attr.attr.mode = 0400;
                        return acpi_data_objs[i].fn(th, data_attr);
                }