]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI: host-generic: Avoid reporting incorrect 'missing reg property' error
authorJess <jess@jessie.cafe>
Tue, 20 Jan 2026 00:44:44 +0000 (13:44 +1300)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 6 Feb 2026 22:44:00 +0000 (16:44 -0600)
When pci_host_common_ecam_create() calls of_address_to_resource(), it
assumes all errors are due to a missing "reg" property in the device tree
node, when they may be due to a malformed "reg" property.

This can manifest when running the qemu "virt" board with a 32-bit kernel
and `highmem=on` and leads to the very confusing error message:

  pci-host-generic 4010000000.pcie: host bridge /pcie@10000000 ranges:
  pci-host-generic 4010000000.pcie:       IO 0x003eff0000..0x003effffff -> 0x0000000000
  pci-host-generic 4010000000.pcie:      MEM 0x0010000000..0x003efeffff -> 0x0010000000
  pci-host-generic 4010000000.pcie:      MEM 0x8000000000..0xffffffffff -> 0x8000000000
  pci-host-generic 4010000000.pcie: missing "reg" property
  pci-host-generic 4010000000.pcie: probe with driver pci-host-generic failed with error -75

Make the error message more generic.

Link: https://www.qemu.org/docs/master/system/arm/virt.html
Signed-off-by: Jess <jess@jessie.cafe>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Will Deacon <will@kernel.org>
Link: https://patch.msgid.link/20260120004444.191093-1-jess@jessie.cafe
drivers/pci/controller/pci-host-common.c

index c473e7c03bacad2de07c798768f99652443431e0..d6258c1cffe5ec480fd2a7e50b3af39ef6ac4c8c 100644 (file)
@@ -32,7 +32,7 @@ struct pci_config_window *pci_host_common_ecam_create(struct device *dev,
 
        err = of_address_to_resource(dev->of_node, 0, &cfgres);
        if (err) {
-               dev_err(dev, "missing \"reg\" property\n");
+               dev_err(dev, "missing or malformed \"reg\" property\n");
                return ERR_PTR(err);
        }