History

PCI: Make pci_sriov_resource_alignment() pci_dev const

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.

Ilpo Järvinen committed 6 months ago

Commit 79a64821 parent 9f331c58 files · +19 −14Browse files

Unified · Split

8 files
  1. arch/powerpc/include/asm/machdep.h +1 −1
  2. arch/powerpc/kernel/pci-common.c +1 −1
  3. arch/powerpc/platforms/powernv/pci-sriov.c +2 −2
  4. arch/powerpc/platforms/powernv/pci.h +2 −1
  5. arch/powerpc/platforms/pseries/setup.c +1 −1
  6. drivers/pci/iov.c +4 −3
  7. drivers/pci/pci.h +3 −2
  8. include/linux/pci.h +5 −3
arch/powerpc/include/asm/machdep.h+1−1
@@ -169,7 +169,7 @@ struct machdep_calls { · 168 unmodified lines
169 169
170#ifdef CONFIG_PCI_IOV170#ifdef CONFIG_PCI_IOV
171 void (*pcibios_fixup_sriov)(struct pci_dev *pdev);171 void (*pcibios_fixup_sriov)(struct pci_dev *pdev);
172 resource_size_t (*pcibios_iov_resource_alignment)(struct pci_dev *, int resno);172 resource_size_t (*pcibios_iov_resource_alignment)(const struct pci_dev *, int resno);
173 int (*pcibios_sriov_enable)(struct pci_dev *pdev, u16 num_vfs);173 int (*pcibios_sriov_enable)(struct pci_dev *pdev, u16 num_vfs);
174 int (*pcibios_sriov_disable)(struct pci_dev *pdev);174 int (*pcibios_sriov_disable)(struct pci_dev *pdev);
175#endif /* CONFIG_PCI_IOV */175#endif /* CONFIG_PCI_IOV */
arch/powerpc/kernel/pci-common.c+1−1
@@ -254,7 +254,7 @@ resource_size_t pcibios_default_alignment(void) · 253 unmodified lines
254}254}
255 255
256#ifdef CONFIG_PCI_IOV256#ifdef CONFIG_PCI_IOV
257resource_size_t pcibios_iov_resource_alignment(struct pci_dev *pdev, int resno)257resource_size_t pcibios_iov_resource_alignment(const struct pci_dev *pdev, int resno)
258{258{
259 if (ppc_md.pcibios_iov_resource_alignment)259 if (ppc_md.pcibios_iov_resource_alignment)
260 return ppc_md.pcibios_iov_resource_alignment(pdev, resno);260 return ppc_md.pcibios_iov_resource_alignment(pdev, resno);
arch/powerpc/platforms/powernv/pci-sriov.c+2−2
@@ -244,8 +244,8 @@ void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev) · 243 unmodified lines
244 }244 }
245}245}
246 246
247resource_size_t pnv_pci_iov_resource_alignment(struct pci_dev *pdev,247resource_size_t pnv_pci_iov_resource_alignment(const struct pci_dev *pdev,
248 int resno)248 int resno)
249{249{
250 resource_size_t align = pci_iov_resource_size(pdev, resno);250 resource_size_t align = pci_iov_resource_size(pdev, resno);
251 struct pnv_phb *phb = pci_bus_to_pnvhb(pdev->bus);251 struct pnv_phb *phb = pci_bus_to_pnvhb(pdev->bus);
arch/powerpc/platforms/powernv/pci.h+2−1
@@ -257,7 +257,8 @@ static inline struct pnv_iov_data *pnv_iov_get(const struct pci_dev *pdev) · 256 unmodified lines
257}257}
258 258
259void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev);259void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev);
260resource_size_t pnv_pci_iov_resource_alignment(struct pci_dev *pdev, int resno);260resource_size_t pnv_pci_iov_resource_alignment(const struct pci_dev *pdev,
261 int resno);
261 262
262int pnv_pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs);263int pnv_pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs);
263int pnv_pcibios_sriov_disable(struct pci_dev *pdev);264int pnv_pcibios_sriov_disable(struct pci_dev *pdev);
arch/powerpc/platforms/pseries/setup.c+1−1
@@ -789,7 +789,7 @@ static void pseries_pci_fixup_iov_resources(struct pci_dev *pdev) · 788 unmodified lines
789 pseries_disable_sriov_resources(pdev);789 pseries_disable_sriov_resources(pdev);
790}790}
791 791
792static resource_size_t pseries_pci_iov_resource_alignment(struct pci_dev *pdev,792static resource_size_t pseries_pci_iov_resource_alignment(const struct pci_dev *pdev,
793 int resno)793 int resno)
794{794{
795 const __be32 *reg;795 const __be32 *reg;
drivers/pci/iov.c+4−3
@@ -150,7 +150,7 @@ static void virtfn_remove_bus(struct pci_bus *physbus, struct pci_bus *virtbus) · 149 unmodified lines
150 pci_remove_bus(virtbus);150 pci_remove_bus(virtbus);
151}151}
152 152
153resource_size_t pci_iov_resource_size(struct pci_dev *dev, int resno)153resource_size_t pci_iov_resource_size(const struct pci_dev *dev, int resno)
154{154{
155 if (!dev->is_physfn)155 if (!dev->is_physfn)
156 return 0;156 return 0;
@@ -1084,7 +1084,7 @@ void pci_iov_update_resource(struct pci_dev *dev, int resno) · 927 unmodified lines
1084 }1084 }
1085}1085}
1086 1086
1087resource_size_t __weak pcibios_iov_resource_alignment(struct pci_dev *dev,1087resource_size_t __weak pcibios_iov_resource_alignment(const struct pci_dev *dev,
1088 int resno)1088 int resno)
1089{1089{
1090 return pci_iov_resource_size(dev, resno);1090 return pci_iov_resource_size(dev, resno);
@@ -1100,7 +1100,8 @@ resource_size_t __weak pcibios_iov_resource_alignment(struct pci_dev *dev, · 9 unmodified lines
1100 * the VF BAR size multiplied by the number of VFs. The alignment1100 * the VF BAR size multiplied by the number of VFs. The alignment
1101 * is just the VF BAR size.1101 * is just the VF BAR size.
1102 */1102 */
1103resource_size_t pci_sriov_resource_alignment(struct pci_dev *dev, int resno)1103resource_size_t pci_sriov_resource_alignment(const struct pci_dev *dev,
1104 int resno)
1104{1105{
1105 return pcibios_iov_resource_alignment(dev, resno);1106 return pcibios_iov_resource_alignment(dev, resno);
1106}1107}
drivers/pci/pci.h+3−2
@@ -947,7 +947,8 @@ int pci_iov_init(struct pci_dev *dev); · 946 unmodified lines
947void pci_iov_release(struct pci_dev *dev);947void pci_iov_release(struct pci_dev *dev);
948void pci_iov_remove(struct pci_dev *dev);948void pci_iov_remove(struct pci_dev *dev);
949void pci_iov_update_resource(struct pci_dev *dev, int resno);949void pci_iov_update_resource(struct pci_dev *dev, int resno);
950resource_size_t pci_sriov_resource_alignment(struct pci_dev *dev, int resno);950resource_size_t pci_sriov_resource_alignment(const struct pci_dev *dev,
951 int resno);
951void pci_restore_iov_state(struct pci_dev *dev);952void pci_restore_iov_state(struct pci_dev *dev);
952int pci_iov_bus_range(struct pci_bus *bus);953int pci_iov_bus_range(struct pci_bus *bus);
953void pci_iov_resource_set_size(struct pci_dev *dev, int resno, int size);954void 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) · 27 unmodified lines
981static inline void pci_iov_release(struct pci_dev *dev) { }982static inline void pci_iov_release(struct pci_dev *dev) { }
982static inline void pci_iov_remove(struct pci_dev *dev) { }983static inline void pci_iov_remove(struct pci_dev *dev) { }
983static inline void pci_iov_update_resource(struct pci_dev *dev, int resno) { }984static inline void pci_iov_update_resource(struct pci_dev *dev, int resno) { }
984static inline resource_size_t pci_sriov_resource_alignment(struct pci_dev *dev,985static inline resource_size_t pci_sriov_resource_alignment(const struct pci_dev *dev,
985 int resno)986 int resno)
986{987{
987 return 0;988 return 0;
include/linux/pci.h+5−3
@@ -2540,7 +2540,7 @@ int pci_vfs_assigned(struct pci_dev *dev); · 2539 unmodified lines
2540int pci_sriov_set_totalvfs(struct pci_dev *dev, u16 numvfs);2540int pci_sriov_set_totalvfs(struct pci_dev *dev, u16 numvfs);
2541int pci_sriov_get_totalvfs(struct pci_dev *dev);2541int pci_sriov_get_totalvfs(struct pci_dev *dev);
2542int pci_sriov_configure_simple(struct pci_dev *dev, int nr_virtfn);2542int pci_sriov_configure_simple(struct pci_dev *dev, int nr_virtfn);
2543resource_size_t pci_iov_resource_size(struct pci_dev *dev, int resno);2543resource_size_t pci_iov_resource_size(const struct pci_dev *dev, int resno);
2544int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, int size);2544int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, int size);
2545u32 pci_iov_vf_bar_get_sizes(struct pci_dev *dev, int resno, int num_vfs);2545u32 pci_iov_vf_bar_get_sizes(struct pci_dev *dev, int resno, int num_vfs);
2546void pci_vf_drivers_autoprobe(struct pci_dev *dev, bool probe);2546void 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); · 1 unmodified line
2548/* Arch may override these (weak) */2548/* Arch may override these (weak) */
2549int pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs);2549int pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs);
2550int pcibios_sriov_disable(struct pci_dev *pdev);2550int pcibios_sriov_disable(struct pci_dev *pdev);
2551resource_size_t pcibios_iov_resource_alignment(struct pci_dev *dev, int resno);2551resource_size_t pcibios_iov_resource_alignment(const struct pci_dev *dev,
2552 int resno);
2552#else2553#else
2553static inline int pci_iov_virtfn_bus(struct pci_dev *dev, int id)2554static inline int pci_iov_virtfn_bus(struct pci_dev *dev, int id)
2554{2555{
@@ -2593,7 +2594,8 @@ static inline int pci_sriov_set_totalvfs(struct pci_dev *dev, u16 numvfs) · 38 unmodified lines
2593static inline int pci_sriov_get_totalvfs(struct pci_dev *dev)2594static inline int pci_sriov_get_totalvfs(struct pci_dev *dev)
2594{ return 0; }2595{ return 0; }
2595#define pci_sriov_configure_simple NULL2596#define pci_sriov_configure_simple NULL
2596static inline resource_size_t pci_iov_resource_size(struct pci_dev *dev, int resno)2597static inline resource_size_t pci_iov_resource_size(const struct pci_dev *dev,
2598 int resno)
2597{ return 0; }2599{ return 0; }
2598static inline int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, int size)2600static inline int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, int size)
2599{ return -ENODEV; }2601{ return -ENODEV; }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t