]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
PCI: Make pci_sriov_resource_alignment() pci_dev const
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Wed, 29 Apr 2026 12:26:13 +0000 (15:26 +0300)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 23 Jun 2026 17:08:51 +0000 (12:08 -0500)
pci_sriov_resource_alignment() inputs struct pci_dev which it should not
need to alter to calculate alignment.

Make pci_dev pci_sriov_resource_alignment() inputs const. It requires
making pci_iov_resource_size() input const as well.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260429122617.7324-8-ilpo.jarvinen@linux.intel.com
arch/powerpc/include/asm/machdep.h
arch/powerpc/kernel/pci-common.c
arch/powerpc/platforms/powernv/pci-sriov.c
arch/powerpc/platforms/powernv/pci.h
arch/powerpc/platforms/pseries/setup.c
drivers/pci/iov.c
drivers/pci/pci.h
include/linux/pci.h

index 3298eec123a32536172261a6265b8f70acedc98c..256f9309bf4fa84ba6c181732c814ca83a614f21 100644 (file)
@@ -169,7 +169,7 @@ struct machdep_calls {
 
 #ifdef CONFIG_PCI_IOV
        void (*pcibios_fixup_sriov)(struct pci_dev *pdev);
-       resource_size_t (*pcibios_iov_resource_alignment)(struct pci_dev *, int resno);
+       resource_size_t (*pcibios_iov_resource_alignment)(const struct pci_dev *, int resno);
        int (*pcibios_sriov_enable)(struct pci_dev *pdev, u16 num_vfs);
        int (*pcibios_sriov_disable)(struct pci_dev *pdev);
 #endif /* CONFIG_PCI_IOV */
index 8efe95a0c4ffda7aa436b6989de390fb844cac44..3c4ca90e2ab7723bbdfa9566531248c0c7f61bb4 100644 (file)
@@ -254,7 +254,7 @@ resource_size_t pcibios_default_alignment(void)
 }
 
 #ifdef CONFIG_PCI_IOV
-resource_size_t pcibios_iov_resource_alignment(struct pci_dev *pdev, int resno)
+resource_size_t pcibios_iov_resource_alignment(const struct pci_dev *pdev, int resno)
 {
        if (ppc_md.pcibios_iov_resource_alignment)
                return ppc_md.pcibios_iov_resource_alignment(pdev, resno);
index 7105a573aec42adddd19a40effd7fffcc929182e..8652078801f2a3ebe1a4df308a433f3eaaace5e5 100644 (file)
@@ -244,8 +244,8 @@ void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev)
        }
 }
 
-resource_size_t pnv_pci_iov_resource_alignment(struct pci_dev *pdev,
-                                                     int resno)
+resource_size_t pnv_pci_iov_resource_alignment(const struct pci_dev *pdev,
+                                              int resno)
 {
        resource_size_t align = pci_iov_resource_size(pdev, resno);
        struct pnv_phb *phb = pci_bus_to_pnvhb(pdev->bus);
index 032b2081aedb0ad9e6aa5cc15d012742f1b7af76..3ac718d471c2099cef29d2f0d4bacb92a20f4902 100644 (file)
@@ -257,7 +257,8 @@ static inline struct pnv_iov_data *pnv_iov_get(const struct pci_dev *pdev)
 }
 
 void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev);
-resource_size_t pnv_pci_iov_resource_alignment(struct pci_dev *pdev, int resno);
+resource_size_t pnv_pci_iov_resource_alignment(const struct pci_dev *pdev,
+                                              int resno);
 
 int pnv_pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs);
 int pnv_pcibios_sriov_disable(struct pci_dev *pdev);
index b670c6fdfcea940913d03068ea0a6a005f6d6ea4..1223dc9612429ad04a143162bf7936ba3561dfb0 100644 (file)
@@ -789,7 +789,7 @@ static void pseries_pci_fixup_iov_resources(struct pci_dev *pdev)
                pseries_disable_sriov_resources(pdev);
 }
 
-static resource_size_t pseries_pci_iov_resource_alignment(struct pci_dev *pdev,
+static resource_size_t pseries_pci_iov_resource_alignment(const struct pci_dev *pdev,
                                                          int resno)
 {
        const __be32 *reg;
index 91ac4e37ecb9c0c5265aa40c235e84b430f43a96..c86409835f73ae0f3f1f86ba6ce531c5bdc508dc 100644 (file)
@@ -150,7 +150,7 @@ static void virtfn_remove_bus(struct pci_bus *physbus, struct pci_bus *virtbus)
                pci_remove_bus(virtbus);
 }
 
-resource_size_t pci_iov_resource_size(struct pci_dev *dev, int resno)
+resource_size_t pci_iov_resource_size(const struct pci_dev *dev, int resno)
 {
        if (!dev->is_physfn)
                return 0;
@@ -1084,7 +1084,7 @@ void pci_iov_update_resource(struct pci_dev *dev, int resno)
        }
 }
 
-resource_size_t __weak pcibios_iov_resource_alignment(struct pci_dev *dev,
+resource_size_t __weak pcibios_iov_resource_alignment(const struct pci_dev *dev,
                                                      int resno)
 {
        return pci_iov_resource_size(dev, resno);
@@ -1100,7 +1100,8 @@ resource_size_t __weak pcibios_iov_resource_alignment(struct pci_dev *dev,
  * the VF BAR size multiplied by the number of VFs.  The alignment
  * is just the VF BAR size.
  */
-resource_size_t pci_sriov_resource_alignment(struct pci_dev *dev, int resno)
+resource_size_t pci_sriov_resource_alignment(const struct pci_dev *dev,
+                                            int resno)
 {
        return pcibios_iov_resource_alignment(dev, resno);
 }
index 4fcf5a25ad9eb7873ea9b6160572015a64905bbf..710803be3a791ec7093f2fe8334e9d646300e92a 100644 (file)
@@ -947,7 +947,8 @@ int pci_iov_init(struct pci_dev *dev);
 void pci_iov_release(struct pci_dev *dev);
 void pci_iov_remove(struct pci_dev *dev);
 void pci_iov_update_resource(struct pci_dev *dev, int resno);
-resource_size_t pci_sriov_resource_alignment(struct pci_dev *dev, int resno);
+resource_size_t pci_sriov_resource_alignment(const struct pci_dev *dev,
+                                            int resno);
 void pci_restore_iov_state(struct pci_dev *dev);
 int pci_iov_bus_range(struct pci_bus *bus);
 void pci_iov_resource_set_size(struct pci_dev *dev, int resno, int size);
@@ -981,7 +982,7 @@ static inline int pci_iov_init(struct pci_dev *dev)
 static inline void pci_iov_release(struct pci_dev *dev) { }
 static inline void pci_iov_remove(struct pci_dev *dev) { }
 static inline void pci_iov_update_resource(struct pci_dev *dev, int resno) { }
-static inline resource_size_t pci_sriov_resource_alignment(struct pci_dev *dev,
+static inline resource_size_t pci_sriov_resource_alignment(const struct pci_dev *dev,
                                                           int resno)
 {
        return 0;
index 2c4454583c115b016e011a847d678a0f5cda0699..0ced3bbd08c0878b6e6d66b58f61633a1c257047 100644 (file)
@@ -2540,7 +2540,7 @@ int pci_vfs_assigned(struct pci_dev *dev);
 int pci_sriov_set_totalvfs(struct pci_dev *dev, u16 numvfs);
 int pci_sriov_get_totalvfs(struct pci_dev *dev);
 int pci_sriov_configure_simple(struct pci_dev *dev, int nr_virtfn);
-resource_size_t pci_iov_resource_size(struct pci_dev *dev, int resno);
+resource_size_t pci_iov_resource_size(const struct pci_dev *dev, int resno);
 int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, int size);
 u32 pci_iov_vf_bar_get_sizes(struct pci_dev *dev, int resno, int num_vfs);
 void pci_vf_drivers_autoprobe(struct pci_dev *dev, bool probe);
@@ -2548,7 +2548,8 @@ void pci_vf_drivers_autoprobe(struct pci_dev *dev, bool probe);
 /* Arch may override these (weak) */
 int pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs);
 int pcibios_sriov_disable(struct pci_dev *pdev);
-resource_size_t pcibios_iov_resource_alignment(struct pci_dev *dev, int resno);
+resource_size_t pcibios_iov_resource_alignment(const struct pci_dev *dev,
+                                              int resno);
 #else
 static inline int pci_iov_virtfn_bus(struct pci_dev *dev, int id)
 {
@@ -2593,7 +2594,8 @@ static inline int pci_sriov_set_totalvfs(struct pci_dev *dev, u16 numvfs)
 static inline int pci_sriov_get_totalvfs(struct pci_dev *dev)
 { return 0; }
 #define pci_sriov_configure_simple     NULL
-static inline resource_size_t pci_iov_resource_size(struct pci_dev *dev, int resno)
+static inline resource_size_t pci_iov_resource_size(const struct pci_dev *dev,
+                                                   int resno)
 { return 0; }
 static inline int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, int size)
 { return -ENODEV; }