genirq: Improve "hwirq" output in /proc and /sys/
authorCédric Le Goater <clg@kaod.org>
Thu, 1 Jul 2021 13:27:50 +0000 (15:27 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 30 Jul 2021 21:07:31 +0000 (23:07 +0200)
The HW IRQ numbers generated by the PCI MSI layer can be quite large
on a pSeries machine when running under the IBM Hypervisor and they
appear as negative. Use '%lu' instead to show them correctly.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/irq/irqdesc.c
kernel/irq/proc.c

index fadb937..4e3c29b 100644 (file)
@@ -188,7 +188,7 @@ static ssize_t hwirq_show(struct kobject *kobj,
 
        raw_spin_lock_irq(&desc->lock);
        if (desc->irq_data.domain)
-               ret = sprintf(buf, "%d\n", (int)desc->irq_data.hwirq);
+               ret = sprintf(buf, "%lu\n", desc->irq_data.hwirq);
        raw_spin_unlock_irq(&desc->lock);
 
        return ret;
index 7c5cd42..ee595ec 100644 (file)
@@ -513,7 +513,7 @@ int show_interrupts(struct seq_file *p, void *v)
                seq_printf(p, " %8s", "None");
        }
        if (desc->irq_data.domain)
-               seq_printf(p, " %*d", prec, (int) desc->irq_data.hwirq);
+               seq_printf(p, " %*lu", prec, desc->irq_data.hwirq);
        else
                seq_printf(p, " %*s", prec, "");
 #ifdef CONFIG_GENERIC_IRQ_SHOW_LEVEL