Re: [PATCH 1/1] PCI: Cleanup dev->resource + resno to use pci_resource_n()

From: Bjorn Helgaas
Date: Sat Feb 08 2025 - 13:42:15 EST


On Fri, Feb 07, 2025 at 06:23:01PM +0200, Ilpo Järvinen wrote:
> Replace pointer arithmentic in finding the correct resource entry with
> the pci_resource_n() helper.
>
> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>

Applied to pci/resource for v6.15, thanks, Ilpo!

> ---
> drivers/pci/iov.c | 2 +-
> drivers/pci/pci.c | 2 +-
> drivers/pci/quirks.c | 4 ++--
> drivers/pci/setup-res.c | 12 ++++++------
> 4 files changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
> index 9e4770cdd4d5..121540f57d4b 100644
> --- a/drivers/pci/iov.c
> +++ b/drivers/pci/iov.c
> @@ -952,7 +952,7 @@ void pci_iov_remove(struct pci_dev *dev)
> void pci_iov_update_resource(struct pci_dev *dev, int resno)
> {
> struct pci_sriov *iov = dev->is_physfn ? dev->sriov : NULL;
> - struct resource *res = dev->resource + resno;
> + struct resource *res = pci_resource_n(dev, resno);
> int vf_bar = resno - PCI_IOV_RESOURCES;
> struct pci_bus_region region;
> u16 cmd;
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 869d204a70a3..c4f710f782f6 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -1884,7 +1884,7 @@ static void pci_restore_rebar_state(struct pci_dev *pdev)
>
> pci_read_config_dword(pdev, pos + PCI_REBAR_CTRL, &ctrl);
> bar_idx = ctrl & PCI_REBAR_CTRL_BAR_IDX;
> - res = pdev->resource + bar_idx;
> + res = pci_resource_n(pdev, bar_idx);
> size = pci_rebar_bytes_to_size(resource_size(res));
> ctrl &= ~PCI_REBAR_CTRL_BAR_SIZE;
> ctrl |= FIELD_PREP(PCI_REBAR_CTRL_BAR_SIZE, size);
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index b84ff7bade82..5cc4610201b7 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -621,7 +621,7 @@ static void quirk_io(struct pci_dev *dev, int pos, unsigned int size,
> {
> u32 region;
> struct pci_bus_region bus_region;
> - struct resource *res = dev->resource + pos;
> + struct resource *res = pci_resource_n(dev, pos);
> const char *res_name = pci_resource_name(dev, pos);
>
> pci_read_config_dword(dev, PCI_BASE_ADDRESS_0 + (pos << 2), &region);
> @@ -671,7 +671,7 @@ static void quirk_io_region(struct pci_dev *dev, int port,
> {
> u16 region;
> struct pci_bus_region bus_region;
> - struct resource *res = dev->resource + nr;
> + struct resource *res = pci_resource_n(dev, nr);
>
> pci_read_config_word(dev, port, &region);
> region &= ~(size - 1);
> diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
> index ca14576bf2bf..ad6436007148 100644
> --- a/drivers/pci/setup-res.c
> +++ b/drivers/pci/setup-res.c
> @@ -29,7 +29,7 @@ static void pci_std_update_resource(struct pci_dev *dev, int resno)
> u16 cmd;
> u32 new, check, mask;
> int reg;
> - struct resource *res = dev->resource + resno;
> + struct resource *res = pci_resource_n(dev, resno);
> const char *res_name = pci_resource_name(dev, resno);
>
> /* Per SR-IOV spec 3.4.1.11, VF BARs are RO zero */
> @@ -262,7 +262,7 @@ resource_size_t __weak pcibios_align_resource(void *data,
> static int __pci_assign_resource(struct pci_bus *bus, struct pci_dev *dev,
> int resno, resource_size_t size, resource_size_t align)
> {
> - struct resource *res = dev->resource + resno;
> + struct resource *res = pci_resource_n(dev, resno);
> resource_size_t min;
> int ret;
>
> @@ -325,7 +325,7 @@ static int _pci_assign_resource(struct pci_dev *dev, int resno,
>
> int pci_assign_resource(struct pci_dev *dev, int resno)
> {
> - struct resource *res = dev->resource + resno;
> + struct resource *res = pci_resource_n(dev, resno);
> const char *res_name = pci_resource_name(dev, resno);
> resource_size_t align, size;
> int ret;
> @@ -372,7 +372,7 @@ EXPORT_SYMBOL(pci_assign_resource);
> int pci_reassign_resource(struct pci_dev *dev, int resno,
> resource_size_t addsize, resource_size_t min_align)
> {
> - struct resource *res = dev->resource + resno;
> + struct resource *res = pci_resource_n(dev, resno);
> const char *res_name = pci_resource_name(dev, resno);
> unsigned long flags;
> resource_size_t new_size;
> @@ -411,7 +411,7 @@ int pci_reassign_resource(struct pci_dev *dev, int resno,
>
> void pci_release_resource(struct pci_dev *dev, int resno)
> {
> - struct resource *res = dev->resource + resno;
> + struct resource *res = pci_resource_n(dev, resno);
> const char *res_name = pci_resource_name(dev, resno);
>
> pci_info(dev, "%s %pR: releasing\n", res_name, res);
> @@ -428,7 +428,7 @@ EXPORT_SYMBOL(pci_release_resource);
>
> int pci_resize_resource(struct pci_dev *dev, int resno, int size)
> {
> - struct resource *res = dev->resource + resno;
> + struct resource *res = pci_resource_n(dev, resno);
> struct pci_host_bridge *host;
> int old, ret;
> u32 sizes;
>
> base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b
> --
> 2.39.5
>