PCI: Keep both device and resource name for config space remaps
authorAlexander Lobakin <alobakin@pm.me>
Thu, 19 Nov 2020 21:26:33 +0000 (21:26 +0000)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 10 Dec 2020 21:22:09 +0000 (15:22 -0600)
Follow the rule taken in commit 35bd8c07db2c ("devres: keep both device
name and resource name in pretty name") and keep both device and resource
names while requesting memory regions for PCI config space to prettify e.g.
/proc/iomem output:

Before (DWC Host Controller):

  18b00000-18b01fff : dbi
  18b10000-18b11fff : config
  18b20000-18b21fff : dbi
  18b30000-18b31fff : config

After:

  18b00000-18b01fff : 18b00000.pci dbi
  18b10000-18b11fff : 18b00000.pci config
  18b20000-18b21fff : 18b20000.pci dbi
  18b30000-18b31fff : 18b20000.pci config

Link: https://lore.kernel.org/r/WbKfdybjZ6xNIUjcC5oC8NcuLqrJfkxQAlnO80ag@cp3-web-020.plabs.ch
Signed-off-by: Alexander Lobakin <alobakin@pm.me>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/pci.c

index 85cb873..4706e23 100644 (file)
@@ -4188,7 +4188,14 @@ void __iomem *devm_pci_remap_cfg_resource(struct device *dev,
        }
 
        size = resource_size(res);
-       name = res->name ?: dev_name(dev);
+
+       if (res->name)
+               name = devm_kasprintf(dev, GFP_KERNEL, "%s %s", dev_name(dev),
+                                     res->name);
+       else
+               name = devm_kstrdup(dev, dev_name(dev), GFP_KERNEL);
+       if (!name)
+               return IOMEM_ERR_PTR(-ENOMEM);
 
        if (!devm_request_mem_region(dev, res->start, size, name)) {
                dev_err(dev, "can't request region for resource %pR\n", res);