Skip to content

Commit

Permalink
mfd: ab8500-debugfs: Remove the racy fiddling with irq_desc
Browse files Browse the repository at this point in the history
First of all drivers have absolutely no business to dig into the internals
of an irq descriptor. That's core code and subject to change. All of this
information is readily available to /proc/interrupts in a safe and race
free way.

Remove the inspection code which is a blatant violation of subsystem
boundaries and racy against concurrent modifications of the interrupt
descriptor.

Print the irq line instead so the information can be looked up in a sane
way in /proc/interrupts.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20201210194044.157283633@linutronix.de
  • Loading branch information
Thomas Gleixner committed Dec 15, 2020
1 parent f392503 commit 886c812
Showing 1 changed file with 3 additions and 13 deletions.
16 changes: 3 additions & 13 deletions drivers/mfd/ab8500-debugfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -1513,24 +1513,14 @@ static int ab8500_interrupts_show(struct seq_file *s, void *p)
{
int line;

seq_puts(s, "name: number: number of: wake:\n");
seq_puts(s, "name: number: irq: number of: wake:\n");

for (line = 0; line < num_interrupt_lines; line++) {
struct irq_desc *desc = irq_to_desc(line + irq_first);

seq_printf(s, "%3i: %6i %4i",
seq_printf(s, "%3i: %4i %6i %4i\n",
line,
line + irq_first,
num_interrupts[line],
num_wake_interrupts[line]);

if (desc && desc->name)
seq_printf(s, "-%-8s", desc->name);
if (desc && desc->action) {
struct irqaction *action = desc->action;

seq_printf(s, " %s", action->name);
while ((action = action->next) != NULL)
seq_printf(s, ", %s", action->name);
}
seq_putc(s, '\n');
}
Expand Down

0 comments on commit 886c812

Please sign in to comment.