diff mbox series

genirq/proc: Add missing space separator back

Message ID 87zfldt5g4.ffs@tglx (mailing list archive)
State New
Delegated to: Geert Uytterhoeven
Headers show
Series genirq/proc: Add missing space separator back | expand

Commit Message

Thomas Gleixner Dec. 3, 2024, 10:40 a.m. UTC
The recent conversion of show_interrupts() to seq_put_decimal_ull_width()
caused a formatting regression as it drops a previosuly existing space
separator.

Add it back by unconditionally inserting a space after the interrupt
counts and removing the extra leading space from the chip name prints.

Fixes: f9ed1f7c2e26 ("genirq/proc: Use seq_put_decimal_ull_width() for decimal values")
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Closes: https://lore.kernel.org/all/4ce18851-6e9f-bbe-8319-cc5e69fb45c@linux-m68k.org
---
 kernel/irq/proc.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

David Wang Dec. 3, 2024, 11:19 a.m. UTC | #1
At 2024-12-03 18:40:43, "Thomas Gleixner" <tglx@linutronix.de> wrote:
>The recent conversion of show_interrupts() to seq_put_decimal_ull_width()
>caused a formatting regression as it drops a previosuly existing space
>separator.
>
>Add it back by unconditionally inserting a space after the interrupt
>counts and removing the extra leading space from the chip name prints.
>
>Fixes: f9ed1f7c2e26 ("genirq/proc: Use seq_put_decimal_ull_width() for decimal values")
>Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
>Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
>Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
>Closes: https://lore.kernel.org/all/4ce18851-6e9f-bbe-8319-cc5e69fb45c@linux-m68k.org
>---
> kernel/irq/proc.c |    7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
>--- a/kernel/irq/proc.c
>+++ b/kernel/irq/proc.c
>@@ -501,17 +501,18 @@ int show_interrupts(struct seq_file *p,
> 
> 		seq_put_decimal_ull_width(p, " ", cnt, 10);
> 	}
>+	seq_putc(p, ' ');
> 
> 	raw_spin_lock_irqsave(&desc->lock, flags);
> 	if (desc->irq_data.chip) {
> 		if (desc->irq_data.chip->irq_print_chip)
> 			desc->irq_data.chip->irq_print_chip(&desc->irq_data, p);
> 		else if (desc->irq_data.chip->name)
>-			seq_printf(p, " %8s", desc->irq_data.chip->name);
>+			seq_printf(p, "%8s", desc->irq_data.chip->name);
> 		else
>-			seq_printf(p, " %8s", "-");
>+			seq_printf(p, "%8s", "-");
> 	} else {
>-		seq_printf(p, " %8s", "None");
>+		seq_printf(p, "%8s", "None");
> 	}
> 	if (desc->irq_data.domain)
> 		seq_printf(p, " %*lu", prec, desc->irq_data.hwirq);


Reviewed-by:    David Wang <00107082@163.com>

And again, sorry for the regression...

Thanks
David
Geert Uytterhoeven Dec. 3, 2024, 11:21 a.m. UTC | #2
Hi Thomas,

On Tue, Dec 3, 2024 at 11:40 AM Thomas Gleixner <tglx@linutronix.de> wrote:
> The recent conversion of show_interrupts() to seq_put_decimal_ull_width()
> caused a formatting regression as it drops a previosuly existing space
> separator.
>
> Add it back by unconditionally inserting a space after the interrupt
> counts and removing the extra leading space from the chip name prints.
>
> Fixes: f9ed1f7c2e26 ("genirq/proc: Use seq_put_decimal_ull_width() for decimal values")
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
> Closes: https://lore.kernel.org/all/4ce18851-6e9f-bbe-8319-cc5e69fb45c@linux-m68k.org

Thanks for your patch!

> --- a/kernel/irq/proc.c
> +++ b/kernel/irq/proc.c
> @@ -501,17 +501,18 @@ int show_interrupts(struct seq_file *p,
>
>                 seq_put_decimal_ull_width(p, " ", cnt, 10);
>         }
> +       seq_putc(p, ' ');
>
>         raw_spin_lock_irqsave(&desc->lock, flags);
>         if (desc->irq_data.chip) {
>                 if (desc->irq_data.chip->irq_print_chip)
>                         desc->irq_data.chip->irq_print_chip(&desc->irq_data, p);

You should also remove the leading space from the few .irq_print_chip()
callbacks that print such a space. According to

    git grep -lw irq_print_chip | xargs git grep -W "seq_.*\" "

and filterng out the false positives:

    arch/powerpc/sysdev/fsl_msi.c:  seq_printf(p, " fsl-msi-%d", cascade_virq);
    drivers/bus/moxtet.c:   seq_printf(p, " moxtet-%s.%i#%i",
mox_module_name(id), pos->idx,
    drivers/irqchip/irq-partition-percpu.c: seq_printf(p, " %5s-%lu",
chip->name, data->hwirq);
    drivers/soc/qcom/smp2p.c:       seq_printf(p, " %8s",
dev_name(entry->smp2p->dev));

>                 else if (desc->irq_data.chip->name)
> -                       seq_printf(p, " %8s", desc->irq_data.chip->name);
> +                       seq_printf(p, "%8s", desc->irq_data.chip->name);
>                 else
> -                       seq_printf(p, " %8s", "-");
> +                       seq_printf(p, "%8s", "-");
>         } else {
> -               seq_printf(p, " %8s", "None");
> +               seq_printf(p, "%8s", "None");
>         }
>         if (desc->irq_data.domain)
>                 seq_printf(p, " %*lu", prec, desc->irq_data.hwirq);

Gr{oetje,eeting}s,

                        Geert
Thomas Gleixner Dec. 3, 2024, 1:56 p.m. UTC | #3
On Tue, Dec 03 2024 at 12:21, Geert Uytterhoeven wrote:
>
> You should also remove the leading space from the few .irq_print_chip()
> callbacks that print such a space. According to
>
>     git grep -lw irq_print_chip | xargs git grep -W "seq_.*\" "
>
> and filterng out the false positives:
>
>     arch/powerpc/sysdev/fsl_msi.c:  seq_printf(p, " fsl-msi-%d", cascade_virq);
>     drivers/bus/moxtet.c:   seq_printf(p, " moxtet-%s.%i#%i",
> mox_module_name(id), pos->idx,
>     drivers/irqchip/irq-partition-percpu.c: seq_printf(p, " %5s-%lu",
> chip->name, data->hwirq);
>     drivers/soc/qcom/smp2p.c:       seq_printf(p, " %8s",
> dev_name(entry->smp2p->dev));

Care to send a patch?

Thanks,

        tglx
diff mbox series

Patch

--- a/kernel/irq/proc.c
+++ b/kernel/irq/proc.c
@@ -501,17 +501,18 @@  int show_interrupts(struct seq_file *p,
 
 		seq_put_decimal_ull_width(p, " ", cnt, 10);
 	}
+	seq_putc(p, ' ');
 
 	raw_spin_lock_irqsave(&desc->lock, flags);
 	if (desc->irq_data.chip) {
 		if (desc->irq_data.chip->irq_print_chip)
 			desc->irq_data.chip->irq_print_chip(&desc->irq_data, p);
 		else if (desc->irq_data.chip->name)
-			seq_printf(p, " %8s", desc->irq_data.chip->name);
+			seq_printf(p, "%8s", desc->irq_data.chip->name);
 		else
-			seq_printf(p, " %8s", "-");
+			seq_printf(p, "%8s", "-");
 	} else {
-		seq_printf(p, " %8s", "None");
+		seq_printf(p, "%8s", "None");
 	}
 	if (desc->irq_data.domain)
 		seq_printf(p, " %*lu", prec, desc->irq_data.hwirq);