[PATCH v10 0/5] PCI: VF resizable BAR

Bjorn Helgaas helgaas at kernel.org
Mon Jul 14 20:05:53 UTC 2025


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!


More information about the dri-devel mailing list