]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI/ACPI: Constify 'struct bin_attribute'
authorThomas Weißschuh <linux@weissschuh.net>
Mon, 2 Dec 2024 19:03:00 +0000 (20:03 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 10 Dec 2024 19:00:50 +0000 (13:00 -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.

Link: https://lore.kernel.org/r/20241202-sysfs-const-bin_attr-pci-v1-4-c32360f495a7@weissschuh.net
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/pci/hotplug/acpiphp_ibm.c

index 8f3a0a33f362bc60ba012419b865b8821c075531..b3aa34e3a4a29417bd694273779dc356be284f1d 100644 (file)
@@ -84,7 +84,7 @@ static int ibm_get_attention_status(struct hotplug_slot *slot, u8 *status);
 static void ibm_handle_events(acpi_handle handle, u32 event, void *context);
 static int ibm_get_table_from_acpi(char **bufp);
 static ssize_t ibm_read_apci_table(struct file *filp, struct kobject *kobj,
-                                  struct bin_attribute *bin_attr,
+                                  const struct bin_attribute *bin_attr,
                                   char *buffer, loff_t pos, size_t size);
 static acpi_status __init ibm_find_acpi_device(acpi_handle handle,
                u32 lvl, void *context, void **rv);
@@ -98,7 +98,7 @@ static struct bin_attribute ibm_apci_table_attr __ro_after_init = {
                    .name = "apci_table",
                    .mode = S_IRUGO,
            },
-           .read = ibm_read_apci_table,
+           .read_new = ibm_read_apci_table,
            .write = NULL,
 };
 static struct acpiphp_attention_info ibm_attention_info =
@@ -353,7 +353,7 @@ read_table_done:
  * our solution is to only allow reading the table in all at once.
  */
 static ssize_t ibm_read_apci_table(struct file *filp, struct kobject *kobj,
-                                  struct bin_attribute *bin_attr,
+                                  const struct bin_attribute *bin_attr,
                                   char *buffer, loff_t pos, size_t size)
 {
        int bytes_read = -EINVAL;