Message ID | 20241108094256.28933-1-andrea.porta@suse.com (mailing list archive) |
---|---|
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é
Hi, On 11:14 Fri 08 Nov , Andrea della Porta wrote: > 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/ Do I have to resubmit the patch with the referenced url fixed or is it ok as it is? Thanks, Andrea > > Many thanks, > Andrea > > > > > Best regards, > > Hervé
Hi Andrea, On Thu, 14 Nov 2024 16:26:42 +0100 Andrea della Porta <andrea.porta@suse.com> wrote: > Hi, > > On 11:14 Fri 08 Nov , Andrea della Porta wrote: > > 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/ > > Do I have to resubmit the patch with the referenced url fixed or is it > ok as it is? This reference is after the '---' marker line and so will not be present in the changelog once the patch is applied. For this reason, I don't think you have to resubmit the patch. If you need to resubmit the patch for any other reasons (resent because the patch was applied, modification needed, ...) resubmit it with the referenced url fixed. Best regards, Hervé
On Fri, Nov 08, 2024 at 10:42:56AM +0100, Andrea della Porta 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> I picked this up on pci/of for v6.13, thanks! Rob, let me know if you'd prefer to take it or ack/review it. > --- > 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. > > drivers/pci/of_property.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > 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)) { > -- > 2.35.3 >
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)) {