lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <cover.1750860131.git.namcao@linutronix.de>
Date: Thu, 26 Jun 2025 16:48:57 +0200
From: Nam Cao <namcao@...utronix.de>
To: Marc Zyngier <maz@...nel.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	Antoine Tenart <atenart@...nel.org>,
	Andrew Lunn <andrew@...n.ch>,
	Gregory Clement <gregory.clement@...tlin.com>,
	Sebastian Hesselbarth <sebastian.hesselbarth@...il.com>,
	Shawn Guo <shawnguo@...nel.org>,
	Sascha Hauer <s.hauer@...gutronix.de>,
	Pengutronix Kernel Team <kernel@...gutronix.de>,
	Fabio Estevam <festevam@...il.com>,
	Huacai Chen <chenhuacai@...nel.org>,
	Jiaxun Yang <jiaxun.yang@...goat.com>,
	Anup Patel <anup@...infault.org>,
	Paul Walmsley <paul.walmsley@...ive.com>,
	Palmer Dabbelt <palmer@...belt.com>,
	Albert Ou <aou@...s.berkeley.edu>,
	Alexandre Ghiti <alex@...ti.fr>,
	linux-kernel@...r.kernel.org,
	linux-arm-kernel@...ts.infradead.org,
	imx@...ts.linux.dev,
	linux-mips@...r.kernel.org,
	linux-riscv@...ts.infradead.org
Cc: Nam Cao <namcao@...utronix.de>
Subject: [PATCH 00/12] irqchip: MSI cleanup and conversion to MSI parent domain

The initial implementation of PCI/MSI interrupt domains in the hierarchical
interrupt domain model used a shortcut by providing a global PCI/MSI
domain.

This works because the PCI/MSI[X] hardware is standardized and uniform, but
it violates the basic design principle of hierarchical interrupt domains:
Each hardware block involved in the interrupt delivery chain should have a
separate interrupt domain.

For PCI/MSI[X], the interrupt controller is per PCI device and not a global
made-up entity.

Unsurprisingly, the shortcut turned out to have downsides as it does not
allow dynamic allocation of interrupt vectors after initialization and it
prevents supporting IMS on PCI. For further details, see:

https://lore.kernel.org/lkml/20221111120501.026511281@linutronix.de/

The solution is implementing per device MSI domains, this means the
entities which provide global PCI/MSI domain so far have to implement MSI
parent domain functionality instead.

Aside from that, the creation of MSI parent domains has been simplified by
new helper functions, which are not yet used by all drivers.

This series addresses this by:

   - Converting the remaining global PCI/MSI domain providers to MSI parent
     domains

   - Converting the existing MSI parent domain implementations to the
     simplified setup function

 drivers/irqchip/Kconfig                    |   3 +
 drivers/irqchip/irq-alpine-msi.c           | 155 ++++++++-------------
 drivers/irqchip/irq-armada-370-xp.c        |  48 ++++---
 drivers/irqchip/irq-bcm2712-mip.c          |  20 +--
 drivers/irqchip/irq-imx-mu-msi.c           |  14 +-
 drivers/irqchip/irq-loongson-pch-msi.c     |  25 ++--
 drivers/irqchip/irq-ls-scfg-msi.c          |  49 +++----
 drivers/irqchip/irq-riscv-imsic-platform.c |  12 +-
 drivers/irqchip/irq-sg2042-msi.c           |  20 ++-
 include/linux/irqdomain.h                  |   2 +
 include/linux/msi.h                        |   2 +
 kernel/irq/irqdomain.c                     |   1 +
 kernel/irq/msi.c                           |   3 +-
 13 files changed, 155 insertions(+), 199 deletions(-)

-- 
2.39.5


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ