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.
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)) {
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.1730123...
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.1730123...
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.1730123...
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;
of_pci_set_address(pdev, rp[i].parent_addr, val64, 0, flags, false); if (pci_is_bridge(pdev)) {val64 = pci_bus_address(pdev, &res[j] - pdev->resource);
-- 2.35.3
linux-stable-mirror@lists.linaro.org