]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
parisc: Avoid printing the hardware path twice
authorHelge Deller <deller@gmx.de>
Fri, 28 Oct 2022 16:12:49 +0000 (18:12 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Nov 2022 16:46:55 +0000 (17:46 +0100)
commit 2b6ae0962b421103feb41a80406732944b0665b3 upstream.

Avoid that the hardware path is shown twice in the kernel log, and clean
up the output of the version numbers to show up in the same order as
they are listed in the hardware database in the hardware.c file.
Additionally, optimize the memory footprint of the hardware database
and mark some code as init code.

Fixes: cab56b51ec0e ("parisc: Fix device names in /proc/iomem")
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/include/asm/hardware.h
arch/parisc/kernel/drivers.c

index d6e1ed145031228dad82b37e4b8d68f1579add3f..f4eab68e25a94a6a6ef042e215403ab45840570e 100644 (file)
 #define SVERSION_ANY_ID                PA_SVERSION_ANY_ID
 
 struct hp_hardware {
-       unsigned short  hw_type:5;      /* HPHW_xxx */
-       unsigned short  hversion;
-       unsigned long   sversion:28;
-       unsigned short  opt;
-       const char      name[80];       /* The hardware description */
-};
+       unsigned int    hw_type:8;      /* HPHW_xxx */
+       unsigned int    hversion:12;
+       unsigned int    sversion:12;
+       unsigned char   opt;
+       unsigned char   name[59];       /* The hardware description */
+} __packed;
 
 struct parisc_device;
 
index 592e8cec16dd578054584f2e213f41aaa69aad6c..01a2ed59d2f2ac35025af0903e8fb43606a3f671 100644 (file)
@@ -861,15 +861,13 @@ void __init walk_central_bus(void)
                        &root);
 }
 
-static void print_parisc_device(struct parisc_device *dev)
+static __init void print_parisc_device(struct parisc_device *dev)
 {
-       char hw_path[64];
-       static int count;
+       static int count __initdata;
 
-       print_pa_hwpath(dev, hw_path);
-       pr_info("%d. %s at %pap [%s] { %d, 0x%x, 0x%.3x, 0x%.5x }",
-               ++count, dev->name, &(dev->hpa.start), hw_path, dev->id.hw_type,
-               dev->id.hversion_rev, dev->id.hversion, dev->id.sversion);
+       pr_info("%d. %s at %pap { type:%d, hv:%#x, sv:%#x, rev:%#x }",
+               ++count, dev->name, &(dev->hpa.start), dev->id.hw_type,
+               dev->id.hversion, dev->id.sversion, dev->id.hversion_rev);
 
        if (dev->num_addrs) {
                int k;
@@ -1058,7 +1056,7 @@ static __init int qemu_print_iodc_data(struct device *lin_dev, void *data)
 
 
 
-static int print_one_device(struct device * dev, void * data)
+static __init int print_one_device(struct device * dev, void * data)
 {
        struct parisc_device * pdev = to_parisc_device(dev);