parisc: Fix device names in /proc/iomem
authorHelge Deller <deller@gmx.de>
Mon, 18 Jul 2022 15:06:47 +0000 (17:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:22:51 +0000 (14:22 +0200)
commit cab56b51ec0e69128909cef4650e1907248d821b upstream.

Fix the output of /proc/iomem to show the real hardware device name
including the pa_pathname, e.g. "Merlin 160 Core Centronics [8:16:0]".
Up to now only the pa_pathname ("[8:16.0]") was shown.

Signed-off-by: Helge Deller <deller@gmx.de>
Cc: <stable@vger.kernel.org> # v4.9+
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/parisc/kernel/drivers.c

index 776d624..d126e78 100644 (file)
@@ -520,7 +520,6 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path)
        dev->id.hversion_rev = iodc_data[1] & 0x0f;
        dev->id.sversion = ((iodc_data[4] & 0x0f) << 16) |
                        (iodc_data[5] << 8) | iodc_data[6];
-       dev->hpa.name = parisc_pathname(dev);
        dev->hpa.start = hpa;
        /* This is awkward.  The STI spec says that gfx devices may occupy
         * 32MB or 64MB.  Unfortunately, we don't know how to tell whether
@@ -534,10 +533,10 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path)
                dev->hpa.end = hpa + 0xfff;
        }
        dev->hpa.flags = IORESOURCE_MEM;
-       name = parisc_hardware_description(&dev->id);
-       if (name) {
-               strlcpy(dev->name, name, sizeof(dev->name));
-       }
+       dev->hpa.name = dev->name;
+       name = parisc_hardware_description(&dev->id) ? : "unknown";
+       snprintf(dev->name, sizeof(dev->name), "%s [%s]",
+               name, parisc_pathname(dev));
 
        /* Silently fail things like mouse ports which are subsumed within
         * the keyboard controller