PCI: endpoint: Make struct pci_epf_ops in pci_epf_driver const
authorLars-Peter Clausen <lars@metafoo.de>
Sat, 22 Jul 2023 23:08:44 +0000 (16:08 -0700)
committerKrzysztof Wilczyński <kwilczynski@kernel.org>
Mon, 18 Dec 2023 22:37:54 +0000 (22:37 +0000)
The pci_epf_ops struct contains a set of callbacks that are used by the
pci_epf_driver, and is never modified by the EPF core itself.

Marking the struct pointer const allows EPF drivers to declare their
pci_epf_ops struct to be const.

This allows the struct to be placed in the read-only section. Which
for example brings some security benefits as the callbacks can not be
overwritten.

[kwilczynski: commit log]
Link: https://lore.kernel.org/linux-pci/20230722230848.589428-1-lars@metafoo.de
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
include/linux/pci-epf.h

index 3f44b6aec4770cb5ee5c925f02cca519d08688ac..764dc62b3acc98b2df0a6041c51f8b1d08ae9033 100644 (file)
@@ -98,7 +98,7 @@ struct pci_epf_driver {
        void    (*remove)(struct pci_epf *epf);
 
        struct device_driver    driver;
-       struct pci_epf_ops      *ops;
+       const struct pci_epf_ops *ops;
        struct module           *owner;
        struct list_head        epf_group;
        const struct pci_epf_device_id  *id_table;