diff options
| author | Lukas Wunner <[email protected]> | 2018-09-08 09:59:01 +0200 | 
|---|---|---|
| committer | Bjorn Helgaas <[email protected]> | 2018-09-18 17:52:15 -0500 | 
| commit | 81c4b5bf30de01a0f6b43ccaa1d220f4a0a5d99c (patch) | |
| tree | 275be529eee5898b58dd9457b58cc07344692ece /drivers/pci/hotplug/ibmphp.h | |
| parent | d758714235e7abb7984468370c912ca2f4dc4e57 (diff) | |
PCI: hotplug: Constify hotplug_slot_ops
Hotplug drivers cannot declare their hotplug_slot_ops const, making them
attractive targets for attackers, because upon registration of a hotplug
slot, __pci_hp_initialize() writes to the "owner" and "mod_name" members
in that struct.
Fix by moving these members to struct hotplug_slot and constify every
driver's hotplug_slot_ops except for pciehp.
pciehp constructs its hotplug_slot_ops at runtime based on the PCIe
port's capabilities, hence cannot declare them const.  It can be
converted to __write_rarely once that's mainlined:
http://www.openwall.com/lists/kernel-hardening/2016/11/16/3
Signed-off-by: Lukas Wunner <[email protected]>
Signed-off-by: Bjorn Helgaas <[email protected]>
Reviewed-by: Rafael J. Wysocki <[email protected]>
Acked-by: Tyrel Datwyler <[email protected]>  # drivers/pci/hotplug/rpa*
Acked-by: Andy Shevchenko <[email protected]> # drivers/platform/x86
Cc: Len Brown <[email protected]>
Cc: Scott Murray <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Michael Ellerman <[email protected]>
Cc: Oliver OHalloran <[email protected]>
Cc: Gavin Shan <[email protected]>
Cc: Sebastian Ott <[email protected]>
Cc: Gerald Schaefer <[email protected]>
Cc: Corentin Chary <[email protected]>
Cc: Darren Hart <[email protected]>
Diffstat (limited to 'drivers/pci/hotplug/ibmphp.h')
| -rw-r--r-- | drivers/pci/hotplug/ibmphp.h | 2 | 
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pci/hotplug/ibmphp.h b/drivers/pci/hotplug/ibmphp.h index fddb78606c74..db387e10581e 100644 --- a/drivers/pci/hotplug/ibmphp.h +++ b/drivers/pci/hotplug/ibmphp.h @@ -740,7 +740,7 @@ int ibmphp_do_disable_slot(struct slot *slot_cur);  int ibmphp_update_slot_info(struct slot *);	/* This function is called from HPC, so we need it to not be be static */  int ibmphp_configure_card(struct pci_func *, u8);  int ibmphp_unconfigure_card(struct slot **, int); -extern struct hotplug_slot_ops ibmphp_hotplug_slot_ops; +extern const struct hotplug_slot_ops ibmphp_hotplug_slot_ops;  #endif				//__IBMPHP_H  |