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.
Unified · Split
| @@ -169,7 +169,7 @@ struct machdep_calls { · 168 unmodified lines | |||
| 169 | 169 | ||
| 170 | #ifdef CONFIG_PCI_IOV | 170 | #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 */ |
| @@ -254,7 +254,7 @@ resource_size_t pcibios_default_alignment(void) · 253 unmodified lines | |||
| 254 | } | 254 | } |
| 255 | 255 | ||
| 256 | #ifdef CONFIG_PCI_IOV | 256 | #ifdef CONFIG_PCI_IOV |
| 257 | resource_size_t pcibios_iov_resource_alignment(struct pci_dev *pdev, int resno) | 257 | resource_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); |
| @@ -244,8 +244,8 @@ void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev) · 243 unmodified lines | |||
| 244 | } | 244 | } |
| 245 | } | 245 | } |
| 246 | 246 | ||
| 247 | resource_size_t pnv_pci_iov_resource_alignment(struct pci_dev *pdev, | 247 | resource_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); |
| @@ -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 | ||
| 259 | void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev); | 259 | void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev); |
| 260 | resource_size_t pnv_pci_iov_resource_alignment(struct pci_dev *pdev, int resno); | 260 | resource_size_t pnv_pci_iov_resource_alignment(const struct pci_dev *pdev, |
| 261 | int resno); | ||
| 261 | 262 | ||
| 262 | int pnv_pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs); | 263 | int pnv_pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs); |
| 263 | int pnv_pcibios_sriov_disable(struct pci_dev *pdev); | 264 | int pnv_pcibios_sriov_disable(struct pci_dev *pdev); |
| @@ -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 | ||
| 792 | static resource_size_t pseries_pci_iov_resource_alignment(struct pci_dev *pdev, | 792 | static 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; |
| @@ -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 | ||
| 153 | resource_size_t pci_iov_resource_size(struct pci_dev *dev, int resno) | 153 | resource_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 | ||
| 1087 | resource_size_t __weak pcibios_iov_resource_alignment(struct pci_dev *dev, | 1087 | resource_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 alignment | 1100 | * 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 | */ |
| 1103 | resource_size_t pci_sriov_resource_alignment(struct pci_dev *dev, int resno) | 1103 | resource_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 | } |
| @@ -947,7 +947,8 @@ int pci_iov_init(struct pci_dev *dev); · 946 unmodified lines | |||
| 947 | void pci_iov_release(struct pci_dev *dev); | 947 | void pci_iov_release(struct pci_dev *dev); |
| 948 | void pci_iov_remove(struct pci_dev *dev); | 948 | void pci_iov_remove(struct pci_dev *dev); |
| 949 | void pci_iov_update_resource(struct pci_dev *dev, int resno); | 949 | void pci_iov_update_resource(struct pci_dev *dev, int resno); |
| 950 | resource_size_t pci_sriov_resource_alignment(struct pci_dev *dev, int resno); | 950 | resource_size_t pci_sriov_resource_alignment(const struct pci_dev *dev, |
| 951 | int resno); | ||
| 951 | void pci_restore_iov_state(struct pci_dev *dev); | 952 | void pci_restore_iov_state(struct pci_dev *dev); |
| 952 | int pci_iov_bus_range(struct pci_bus *bus); | 953 | int pci_iov_bus_range(struct pci_bus *bus); |
| 953 | void pci_iov_resource_set_size(struct pci_dev *dev, int resno, int size); | 954 | 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) · 27 unmodified lines | |||
| 981 | static inline void pci_iov_release(struct pci_dev *dev) { } | 982 | static inline void pci_iov_release(struct pci_dev *dev) { } |
| 982 | static inline void pci_iov_remove(struct pci_dev *dev) { } | 983 | static inline void pci_iov_remove(struct pci_dev *dev) { } |
| 983 | static inline void pci_iov_update_resource(struct pci_dev *dev, int resno) { } | 984 | static inline void pci_iov_update_resource(struct pci_dev *dev, int resno) { } |
| 984 | static inline resource_size_t pci_sriov_resource_alignment(struct pci_dev *dev, | 985 | static 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; |
| @@ -2540,7 +2540,7 @@ int pci_vfs_assigned(struct pci_dev *dev); · 2539 unmodified lines | |||
| 2540 | int pci_sriov_set_totalvfs(struct pci_dev *dev, u16 numvfs); | 2540 | int pci_sriov_set_totalvfs(struct pci_dev *dev, u16 numvfs); |
| 2541 | int pci_sriov_get_totalvfs(struct pci_dev *dev); | 2541 | int pci_sriov_get_totalvfs(struct pci_dev *dev); |
| 2542 | int pci_sriov_configure_simple(struct pci_dev *dev, int nr_virtfn); | 2542 | int pci_sriov_configure_simple(struct pci_dev *dev, int nr_virtfn); |
| 2543 | resource_size_t pci_iov_resource_size(struct pci_dev *dev, int resno); | 2543 | resource_size_t pci_iov_resource_size(const struct pci_dev *dev, int resno); |
| 2544 | int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, int size); | 2544 | int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, int size); |
| 2545 | u32 pci_iov_vf_bar_get_sizes(struct pci_dev *dev, int resno, int num_vfs); | 2545 | u32 pci_iov_vf_bar_get_sizes(struct pci_dev *dev, int resno, int num_vfs); |
| 2546 | void pci_vf_drivers_autoprobe(struct pci_dev *dev, bool probe); | 2546 | 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); · 1 unmodified line | |||
| 2548 | /* Arch may override these (weak) */ | 2548 | /* Arch may override these (weak) */ |
| 2549 | int pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs); | 2549 | int pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs); |
| 2550 | int pcibios_sriov_disable(struct pci_dev *pdev); | 2550 | int pcibios_sriov_disable(struct pci_dev *pdev); |
| 2551 | resource_size_t pcibios_iov_resource_alignment(struct pci_dev *dev, int resno); | 2551 | resource_size_t pcibios_iov_resource_alignment(const struct pci_dev *dev, |
| 2552 | int resno); | ||
| 2552 | #else | 2553 | #else |
| 2553 | static inline int pci_iov_virtfn_bus(struct pci_dev *dev, int id) | 2554 | static 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 | |||
| 2593 | static inline int pci_sriov_get_totalvfs(struct pci_dev *dev) | 2594 | static inline int pci_sriov_get_totalvfs(struct pci_dev *dev) |
| 2594 | { return 0; } | 2595 | { return 0; } |
| 2595 | #define pci_sriov_configure_simple NULL | 2596 | #define pci_sriov_configure_simple NULL |
| 2596 | static inline resource_size_t pci_iov_resource_size(struct pci_dev *dev, int resno) | 2597 | static inline resource_size_t pci_iov_resource_size(const struct pci_dev *dev, |
| 2598 | int resno) | ||
| 2597 | { return 0; } | 2599 | { return 0; } |
| 2598 | static inline int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, int size) | 2600 | static inline int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, int size) |
| 2599 | { return -ENODEV; } | 2601 | { return -ENODEV; } |