[PATCH] pci: apple: Fix use of uninitialized variable
Tom Rini
trini at konsulko.com
Sat Aug 23 16:53:29 CEST 2025
On Sat, Aug 23, 2025 at 04:03:56PM +0200, Mark Kettenis wrote:
> Replace use of uninitialized variable with the PCI device number
> in an error message as this is what we use elsewhere to derive
> the PCIe port number. Use ofnode_read_pci_addr() to read the
> PCI address of the node and derive the device number from that.
>
> Signed-off-by: Mark Kettenis <kettenis at openbsd.org>
Reported-by: Andrew Goodbody <andrew.goodbody at linaro.org>
patchwork should pick this up, no need for v2 unless there's real
feedback, thanks!
> ---
> drivers/pci/pcie_apple.c | 18 +++++++++++++-----
> 1 file changed, 13 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/pci/pcie_apple.c b/drivers/pci/pcie_apple.c
> index 6a8e715d4b6..f5fda9835dc 100644
> --- a/drivers/pci/pcie_apple.c
> +++ b/drivers/pci/pcie_apple.c
> @@ -246,8 +246,9 @@ static int apple_pcie_setup_port(struct apple_pcie_priv *pcie, ofnode np)
> {
> struct apple_pcie_port *port;
> struct gpio_desc reset;
> + struct fdt_pci_addr pci_addr;
> fdt_addr_t addr;
> - u32 stat, idx;
> + u32 stat;
> int ret;
> char name[16];
>
> @@ -259,12 +260,13 @@ static int apple_pcie_setup_port(struct apple_pcie_priv *pcie, ofnode np)
> if (!port)
> return -ENOMEM;
>
> - ret = ofnode_read_u32_index(np, "reg", 0, &idx);
> + ret = ofnode_read_pci_addr(np, FDT_PCI_SPACE_CONFIG, "reg",
> + &pci_addr, NULL);
> if (ret)
> return ret;
>
> /* Use the first reg entry to work out the port index */
> - port->idx = idx >> 11;
> + port->idx = PCI_DEV(pci_addr.phys_hi);
> port->pcie = pcie;
> port->reset = reset;
> port->np = np;
> @@ -333,9 +335,10 @@ static int apple_pcie_setup_port(struct apple_pcie_priv *pcie, ofnode np)
> static int apple_pcie_probe(struct udevice *dev)
> {
> struct apple_pcie_priv *pcie = dev_get_priv(dev);
> + struct fdt_pci_addr pci_addr;
> fdt_addr_t addr;
> ofnode of_port;
> - int i, ret;
> + int ret;
>
> pcie->hw = (struct reg_info *)dev_get_driver_data(dev);
>
> @@ -357,9 +360,14 @@ static int apple_pcie_probe(struct udevice *dev)
> of_port = ofnode_next_subnode(of_port)) {
> if (!ofnode_is_enabled(of_port))
> continue;
> + ret = ofnode_read_pci_addr(of_port, FDT_PCI_SPACE_CONFIG,
> + "reg", &pci_addr, NULL);
> + if (ret)
> + continue;
> ret = apple_pcie_setup_port(pcie, of_port);
> if (ret) {
> - dev_err(pcie->dev, "Port %d setup fail: %d\n", i, ret);
> + dev_err(pcie->dev, "Port %d setup fail: %d\n",
> + PCI_DEV(pci_addr.phys_hi), ret);
> return ret;
> }
> }
> --
> 2.50.1
>
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250823/35187a43/attachment.sig>
More information about the U-Boot
mailing list