Message ID | 20241108094256.28933-1-andrea.porta@suse.com |
---|---|
State | New |
Headers | show |
Series | PCI: of_property: Assign PCI instead of CPU bus address to dynamic PCI nodes | expand |
Hi Andrea, On Fri, 8 Nov 2024 10:42:56 +0100 Andrea della Porta <andrea.porta@suse.com> wrote: > When populating "ranges" property for a PCI bridge or endpoint, > of_pci_prop_ranges() incorrectly use the CPU bus address of the resource. > In such PCI nodes, the window should instead be in PCI address space. Call > pci_bus_address() on the resource in order to obtain the PCI bus > address. > > Fixes: 407d1a51921e ("PCI: Create device tree node for bridge") > Cc: stable@vger.kernel.org > Signed-off-by: Andrea della Porta <andrea.porta@suse.com> > Acked-by: Bjorn Helgaas <bhelgaas@google.com> > Tested-by: Herve Codina <herve.codina@bootlin.com> > --- > This patch, originally preparatory for a bigger patchset (see [1]), has > been splitted in a standalone one for better management and because it > contains a bugfix which is probably of interest to stable branch. Nothing to say for the patch itself. Just here, you mentioned "see [1]" but you didn't provide the link. IMHO, this is not blocking for applying the patch but, just for other people looking at this email in the mailing list, can you reply providing the link? Best regards, Hervé
Hi herve, On 11:09 Fri 08 Nov , Herve Codina wrote: > Hi Andrea, > > On Fri, 8 Nov 2024 10:42:56 +0100 > Andrea della Porta <andrea.porta@suse.com> wrote: > > > When populating "ranges" property for a PCI bridge or endpoint, > > of_pci_prop_ranges() incorrectly use the CPU bus address of the resource. > > In such PCI nodes, the window should instead be in PCI address space. Call > > pci_bus_address() on the resource in order to obtain the PCI bus > > address. > > > > Fixes: 407d1a51921e ("PCI: Create device tree node for bridge") > > Cc: stable@vger.kernel.org > > Signed-off-by: Andrea della Porta <andrea.porta@suse.com> > > Acked-by: Bjorn Helgaas <bhelgaas@google.com> > > Tested-by: Herve Codina <herve.codina@bootlin.com> > > --- > > This patch, originally preparatory for a bigger patchset (see [1]), has > > been splitted in a standalone one for better management and because it > > contains a bugfix which is probably of interest to stable branch. > > Nothing to say for the patch itself. > > Just here, you mentioned "see [1]" but you didn't provide the link. > > IMHO, this is not blocking for applying the patch but, just for other people > looking at this email in the mailing list, can you reply providing the link? Thanks for pointing that out, sorry about that. Here it is: [1] - https://lore.kernel.org/all/f6b445b764312fd8ab96745fe4e97fb22f91ae4c.1730123575.git.andrea.porta@suse.com/ Many thanks, Andrea > > Best regards, > Hervé
diff --git a/drivers/pci/of_property.c b/drivers/pci/of_property.c index 5a0b98e69795..886c236e5de6 100644 --- a/drivers/pci/of_property.c +++ b/drivers/pci/of_property.c @@ -126,7 +126,7 @@ static int of_pci_prop_ranges(struct pci_dev *pdev, struct of_changeset *ocs, if (of_pci_get_addr_flags(&res[j], &flags)) continue; - val64 = res[j].start; + val64 = pci_bus_address(pdev, &res[j] - pdev->resource); of_pci_set_address(pdev, rp[i].parent_addr, val64, 0, flags, false); if (pci_is_bridge(pdev)) {