linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] irqchip: Prevent drivers abusing irq_chip::name
@ 2022-02-09 16:25 Marc Zyngier
  2022-02-09 16:25 ` [PATCH 01/10] irqdomain: Let irq_domain_set_{info,hwirq_and_chip} take a const irq_chip Marc Zyngier
                   ` (10 more replies)
  0 siblings, 11 replies; 39+ messages in thread
From: Marc Zyngier @ 2022-02-09 16:25 UTC (permalink / raw)
  To: linux-kernel, linux-gpio
  Cc: Linus Walleij, Bartosz Golaszewski, Matthias Brugger,
	Grygorii Strashko, Santosh Shilimkar, Kevin Hilman,
	Tony Lindgren, Thomas Gleixner, Vladimir Zapolskiy, Andrew Lunn,
	Gregory Clement, Sebastian Hesselbarth, Emil Renner Berthing,
	kernel-team

Another common abuse in irqchip drivers (and derivatives) is to place
a string representing the underlying device in the irq_chip::name
field that gets displayed in /proc/interrupts while this should only
be an indication of the "type" of interrupt controller.

Not only this is pretty pointless (with hierarchical domains, you only
see the top chip), but it also gets in the way of making the irq_chip
structure const. For debug, we have a whole infrastructure that does
everything you can imagine (and stuff you don't want to).

We can't remove this name as it is visible from userspace and there is
a whole collection of CI scripts that parse /proc/interrupts for good
(and mostly bad) reasons. The solution is to use the irq_print_chip()
callback and to let it output whatever string is necessary.

Having done that, we can cleanup a few irqchip drivers and make their
irq_chip structure const (which requires touching a handful of core
functions). Whilst we're at it, we do the same for a couple of gpio
drivers.

This series relies on the one posted at [1].

Thanks,

	M.

[1] https://lore.kernel.org/r/20220201120310.878267-1-maz@kernel.org

Marc Zyngier (10):
  irqdomain: Let irq_domain_set_{info,hwirq_and_chip} take a const
    irq_chip
  genirq: Allow irq_chip registration functions to take a const irq_chip
  irqchip/gic: Switch to dynamic chip name output
  irqchip/lpc32xx: Switch to dynamic chip name output
  irqchip/mvebu-pic: Switch to dynamic chip name output
  irqchip/ts4800: Switch to dynamic chip name output
  irqchip/versatile-fpga: Switch to dynamic chip name output
  gpio: mt7621: Switch to dynamic chip name output
  gpio: omap: Switch to dynamic chip name output
  pinctrl: starfive: Switch to dynamic chip name output

 drivers/gpio/gpio-mt7621.c             |  12 ++-
 drivers/gpio/gpio-omap.c               |  28 ++++---
 drivers/irqchip/irq-ftintc010.c        |   1 -
 drivers/irqchip/irq-gic.c              | 102 +++++++++++++------------
 drivers/irqchip/irq-lpc32xx.c          |  34 ++++++---
 drivers/irqchip/irq-mvebu-pic.c        |  28 ++++---
 drivers/irqchip/irq-ts4800.c           |  25 ++++--
 drivers/irqchip/irq-versatile-fpga.c   |  46 ++++++-----
 drivers/pinctrl/pinctrl-starfive.c     |  11 ++-
 include/linux/irq.h                    |   7 +-
 include/linux/irqchip/versatile-fpga.h |  14 ----
 include/linux/irqdomain.h              |   5 +-
 kernel/irq/chip.c                      |   9 +--
 kernel/irq/irqdomain.c                 |   7 +-
 14 files changed, 189 insertions(+), 140 deletions(-)
 delete mode 100644 include/linux/irqchip/versatile-fpga.h

-- 
2.30.2


^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2022-02-19  1:03 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-09 16:25 [PATCH 00/10] irqchip: Prevent drivers abusing irq_chip::name Marc Zyngier
2022-02-09 16:25 ` [PATCH 01/10] irqdomain: Let irq_domain_set_{info,hwirq_and_chip} take a const irq_chip Marc Zyngier
2022-02-15 12:20   ` [irqchip: irq/irqchip-next] " irqchip-bot for Marc Zyngier
2022-02-09 16:25 ` [PATCH 02/10] genirq: Allow irq_chip registration functions to " Marc Zyngier
2022-02-15 12:20   ` [irqchip: irq/irqchip-next] " irqchip-bot for Marc Zyngier
2022-02-09 16:26 ` [PATCH 03/10] irqchip/gic: Switch to dynamic chip name output Marc Zyngier
2022-02-10 23:38   ` Linus Walleij
2022-02-11  9:08     ` Marc Zyngier
2022-02-15 12:19   ` [irqchip: irq/irqchip-next] " irqchip-bot for Marc Zyngier
2022-02-09 16:26 ` [PATCH 04/10] irqchip/lpc32xx: " Marc Zyngier
2022-02-15 12:19   ` [irqchip: irq/irqchip-next] " irqchip-bot for Marc Zyngier
2022-02-09 16:26 ` [PATCH 05/10] irqchip/mvebu-pic: " Marc Zyngier
2022-02-14 14:48   ` Gregory CLEMENT
2022-02-15 12:19   ` [irqchip: irq/irqchip-next] " irqchip-bot for Marc Zyngier
2022-02-09 16:26 ` [PATCH 06/10] irqchip/ts4800: " Marc Zyngier
2022-02-15 12:19   ` [irqchip: irq/irqchip-next] " irqchip-bot for Marc Zyngier
2022-02-09 16:26 ` [PATCH 07/10] irqchip/versatile-fpga: " Marc Zyngier
2022-02-10 23:29   ` Linus Walleij
2022-02-15 12:19   ` [irqchip: irq/irqchip-next] " irqchip-bot for Marc Zyngier
2022-02-09 16:26 ` [PATCH 08/10] gpio: mt7621: " Marc Zyngier
2022-02-09 16:26 ` [PATCH 09/10] gpio: omap: " Marc Zyngier
2022-02-09 16:26 ` [PATCH 10/10] pinctrl: starfive: " Marc Zyngier
2022-02-09 23:30   ` Emil Renner Berthing
2022-02-10  9:06     ` Marc Zyngier
2022-02-10 12:59       ` Emil Renner Berthing
2022-02-10 13:32         ` Marc Zyngier
2022-02-10 13:44           ` Emil Renner Berthing
2022-02-10 13:50             ` Marc Zyngier
2022-02-10 14:14               ` Emil Renner Berthing
2022-02-10 14:22                 ` Marc Zyngier, Linus Walleij
2022-02-10 14:34                 ` Marc Zyngier
2022-02-10 14:46                   ` Emil Renner Berthing
2022-02-11  0:18                   ` Linus Walleij
2022-02-11  0:15       ` Linus Walleij
2022-02-11  9:20         ` Marc Zyngier
2022-02-10 23:41 ` [PATCH 00/10] irqchip: Prevent drivers abusing irq_chip::name Linus Walleij
2022-02-15 12:13   ` Marc Zyngier
2022-02-15 15:37   ` Andy Shevchenko
2022-02-19  1:03     ` Linus Walleij

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).