drivers/pci/iov.c | 153 +++++++++++++++++++++++++++++++--- drivers/pci/pci.c | 8 +- drivers/pci/pci.h | 39 +++++++++ drivers/pci/setup-bus.c | 3 +- drivers/pci/setup-res.c | 35 ++++++-- include/linux/pci.h | 6 ++ include/uapi/linux/pci_regs.h | 9 ++ 7 files changed, 235 insertions(+), 18 deletions(-)
Hi, The series is now reviewed, and it looks like there's no further feedback. To limit it to PCI subsystem, I removed the last patch in the series, as it contained changes in drm/xe driver (it can still be found in v9 for reference, and I expect that this single patch will go through DRM tree anyways). v9 can be found here: https://lore.kernel.org/linux-pci/20250527120637.665506-1-michal.winiarski@intel.com/ For regular BAR, drivers can use pci_resize_resource to resize it to the desired size provided that it is supported by the hardware, which the driver can query using pci_rebar_get_possible_sizes. This series expands the API to work with IOV BAR as well. It also adds the additional API for drivers to change the VF BAR size without resizing the entire underlying reservation (within the original resource boundary). Thanks, -Michał v9 -> v10: - Remove last patch with drm/xe changes v8 -> v9: - Use u64 as do_div() dividend (LKP) - Introduce a helper to access cached vf_rebar_cap (LKP) v7 -> v8: - Update variable ordering and missing includes (Ilpo) v6 -> v7: - Eliminate the loop in pci_iov_vf_bar_get_sizes() (Ilpo) - Use helper variable for indexes (Ilpo) - Kerneldoc formatting (Ilpo) - Refer to latest PCI spec (Ilpo) - Commit message wording (Ilpo) v5 -> v6: - Rebased on latest pci/next - Cache the VF resizable BAR capability position to avoid multiple lookups (Ilpo) - Use pci_resource_n helper (Ilpo) v4 -> v5: - Rename pci_resource_to/from_iov helpers and add WARN if called without CONFIG_PCI_IOV (Ilpo) - Reword kerneldoc for pci_iov_vf_bar_get_sizes (Bjorn) - Reword commit message for VF BAR size check, extract the additional size check to separate conditional (Bjorn) v3 -> v4: - Change the approach to extending the BAR (Christian) - Tidy the commit messages, use 80 line limit where necessary (Bjorn) - Add kerneldocs to exported functions (Bjorn) - Add pci_resource_to_iov() / pci_resource_from_iov() helpers (Ilpo) - Use FIELD_GET(), tidy whitespace (Ilpo) v2 -> v3: - Extract introducing pci_resource_is_iov to separate commit and use it elsewhere in PCI subsystem (Christian) - Extract restoring VF rebar state to separate commit (Christian) - Reorganize memory decoding check (Christian) - Don't use dev_WARN (Ilpo) - Fix build without CONFIG_PCI_IOV (CI) v1 -> v2: - Add pci_iov_resource_extend() and usage in Xe driver - Reduce the number of ifdefs (Christian) - Drop patch 2/2 from v1 (Christian) - Add a helper to avoid upsetting static analysis tools (Krzysztof) Michał Winiarski (5): PCI/IOV: Restore VF resizable BAR state after reset PCI: Add a helper to convert between VF BAR number and IOV resource PCI: Allow IOV resources to be resized in pci_resize_resource() PCI/IOV: Check that VF BAR fits within the reservation PCI: Allow drivers to control VF BAR size drivers/pci/iov.c | 153 +++++++++++++++++++++++++++++++--- drivers/pci/pci.c | 8 +- drivers/pci/pci.h | 39 +++++++++ drivers/pci/setup-bus.c | 3 +- drivers/pci/setup-res.c | 35 ++++++-- include/linux/pci.h | 6 ++ include/uapi/linux/pci_regs.h | 9 ++ 7 files changed, 235 insertions(+), 18 deletions(-) -- 2.49.0
On Wed, Jul 02, 2025 at 11:35:17AM +0200, Michał Winiarski wrote: > Hi, > > The series is now reviewed, and it looks like there's no further > feedback. > To limit it to PCI subsystem, I removed the last patch in the series, as > it contained changes in drm/xe driver (it can still be found in v9 for > reference, and I expect that this single patch will go through DRM tree > anyways). > > v9 can be found here: > https://lore.kernel.org/linux-pci/20250527120637.665506-1-michal.winiarski@intel.com/ > > For regular BAR, drivers can use pci_resize_resource to resize it to the > desired size provided that it is supported by the hardware, which the > driver can query using pci_rebar_get_possible_sizes. > This series expands the API to work with IOV BAR as well. > It also adds the additional API for drivers to change the VF BAR size > without resizing the entire underlying reservation (within the original > resource boundary). > > Thanks, > -Michał > > v9 -> v10: > - Remove last patch with drm/xe changes > > v8 -> v9: > - Use u64 as do_div() dividend (LKP) > - Introduce a helper to access cached vf_rebar_cap (LKP) > > v7 -> v8: > - Update variable ordering and missing includes (Ilpo) > > v6 -> v7: > - Eliminate the loop in pci_iov_vf_bar_get_sizes() (Ilpo) > - Use helper variable for indexes (Ilpo) > - Kerneldoc formatting (Ilpo) > - Refer to latest PCI spec (Ilpo) > - Commit message wording (Ilpo) > > v5 -> v6: > - Rebased on latest pci/next > - Cache the VF resizable BAR capability position to avoid multiple > lookups (Ilpo) > - Use pci_resource_n helper (Ilpo) > > v4 -> v5: > - Rename pci_resource_to/from_iov helpers and add WARN if called without > CONFIG_PCI_IOV (Ilpo) > - Reword kerneldoc for pci_iov_vf_bar_get_sizes (Bjorn) > - Reword commit message for VF BAR size check, extract the additional > size check to separate conditional (Bjorn) > > v3 -> v4: > - Change the approach to extending the BAR (Christian) > - Tidy the commit messages, use 80 line limit where necessary (Bjorn) > - Add kerneldocs to exported functions (Bjorn) > - Add pci_resource_to_iov() / pci_resource_from_iov() helpers (Ilpo) > - Use FIELD_GET(), tidy whitespace (Ilpo) > > v2 -> v3: > - Extract introducing pci_resource_is_iov to separate commit and > use it elsewhere in PCI subsystem (Christian) > - Extract restoring VF rebar state to separate commit (Christian) > - Reorganize memory decoding check (Christian) > - Don't use dev_WARN (Ilpo) > - Fix build without CONFIG_PCI_IOV (CI) > > v1 -> v2: > - Add pci_iov_resource_extend() and usage in Xe driver > - Reduce the number of ifdefs (Christian) > - Drop patch 2/2 from v1 (Christian) > - Add a helper to avoid upsetting static analysis tools (Krzysztof) > > Michał Winiarski (5): > PCI/IOV: Restore VF resizable BAR state after reset > PCI: Add a helper to convert between VF BAR number and IOV resource > PCI: Allow IOV resources to be resized in pci_resize_resource() > PCI/IOV: Check that VF BAR fits within the reservation > PCI: Allow drivers to control VF BAR size > > drivers/pci/iov.c | 153 +++++++++++++++++++++++++++++++--- > drivers/pci/pci.c | 8 +- > drivers/pci/pci.h | 39 +++++++++ > drivers/pci/setup-bus.c | 3 +- > drivers/pci/setup-res.c | 35 ++++++-- > include/linux/pci.h | 6 ++ > include/uapi/linux/pci_regs.h | 9 ++ > 7 files changed, 235 insertions(+), 18 deletions(-) Applied to pci/resources for v6.17, thanks for the reminder!
On Wed, Jul 02, 2025 at 11:35:17AM +0200, Michał Winiarski wrote: > Hi, > > The series is now reviewed, and it looks like there's no further > feedback. > To limit it to PCI subsystem, I removed the last patch in the series, as > it contained changes in drm/xe driver (it can still be found in v9 for > reference, and I expect that this single patch will go through DRM tree > anyways). > > v9 can be found here: > https://lore.kernel.org/linux-pci/20250527120637.665506-1-michal.winiarski@intel.com/ > > For regular BAR, drivers can use pci_resize_resource to resize it to the > desired size provided that it is supported by the hardware, which the > driver can query using pci_rebar_get_possible_sizes. > This series expands the API to work with IOV BAR as well. > It also adds the additional API for drivers to change the VF BAR size > without resizing the entire underlying reservation (within the original > resource boundary). Hi Bjorn, Can you consider applying this series? Or do you still have some comments? Thanks, -Michał > > Thanks, > -Michał > > v9 -> v10: > - Remove last patch with drm/xe changes > > v8 -> v9: > - Use u64 as do_div() dividend (LKP) > - Introduce a helper to access cached vf_rebar_cap (LKP) > > v7 -> v8: > - Update variable ordering and missing includes (Ilpo) > > v6 -> v7: > - Eliminate the loop in pci_iov_vf_bar_get_sizes() (Ilpo) > - Use helper variable for indexes (Ilpo) > - Kerneldoc formatting (Ilpo) > - Refer to latest PCI spec (Ilpo) > - Commit message wording (Ilpo) > > v5 -> v6: > - Rebased on latest pci/next > - Cache the VF resizable BAR capability position to avoid multiple > lookups (Ilpo) > - Use pci_resource_n helper (Ilpo) > > v4 -> v5: > - Rename pci_resource_to/from_iov helpers and add WARN if called without > CONFIG_PCI_IOV (Ilpo) > - Reword kerneldoc for pci_iov_vf_bar_get_sizes (Bjorn) > - Reword commit message for VF BAR size check, extract the additional > size check to separate conditional (Bjorn) > > v3 -> v4: > - Change the approach to extending the BAR (Christian) > - Tidy the commit messages, use 80 line limit where necessary (Bjorn) > - Add kerneldocs to exported functions (Bjorn) > - Add pci_resource_to_iov() / pci_resource_from_iov() helpers (Ilpo) > - Use FIELD_GET(), tidy whitespace (Ilpo) > > v2 -> v3: > - Extract introducing pci_resource_is_iov to separate commit and > use it elsewhere in PCI subsystem (Christian) > - Extract restoring VF rebar state to separate commit (Christian) > - Reorganize memory decoding check (Christian) > - Don't use dev_WARN (Ilpo) > - Fix build without CONFIG_PCI_IOV (CI) > > v1 -> v2: > - Add pci_iov_resource_extend() and usage in Xe driver > - Reduce the number of ifdefs (Christian) > - Drop patch 2/2 from v1 (Christian) > - Add a helper to avoid upsetting static analysis tools (Krzysztof) > > Michał Winiarski (5): > PCI/IOV: Restore VF resizable BAR state after reset > PCI: Add a helper to convert between VF BAR number and IOV resource > PCI: Allow IOV resources to be resized in pci_resize_resource() > PCI/IOV: Check that VF BAR fits within the reservation > PCI: Allow drivers to control VF BAR size > > drivers/pci/iov.c | 153 +++++++++++++++++++++++++++++++--- > drivers/pci/pci.c | 8 +- > drivers/pci/pci.h | 39 +++++++++ > drivers/pci/setup-bus.c | 3 +- > drivers/pci/setup-res.c | 35 ++++++-- > include/linux/pci.h | 6 ++ > include/uapi/linux/pci_regs.h | 9 ++ > 7 files changed, 235 insertions(+), 18 deletions(-) > > -- > 2.49.0 >
© 2016 - 2025 Red Hat, Inc.