Messages in this thread | | | From | Marc Zyngier <> | Subject | [PATCH 0/3] MSI: Track device proxying when allocating MSIs | Date | Sun, 29 Nov 2020 13:52:05 +0000 |
| |
This series aims to plug a gap found with John's "managed interrupts for platform devices" series.
We have a couple of cases where we allocate MSIs for a device, but the endpoint generating the actual interrupts (let's call it the "logical device") isn't the one being seen generating the MSIs (the "effective device"):
- PCI devices behind a non transparent bridge - Devices attached to a wire-to-MSI bridge
For interrupt infrastructures such as the ITS (where the effective device ID is part of the translation), it is important decouple the lifetime of the effective device mapping from the interrupt allocation on behalf of the logical device. Yes, I have a headache too.
To achieve this split, let's tag the such allocations with a new flag that convey the fact that the effective device isn't the logical one. This mostly affects the platform-MSI subsystem.
Subsequent patches add handling of this new flag in the GICv3 ITS (though there may be scope for something more generic in the case of the last patch).
Marc Zyngier (3): platform-msi: Track shared domain allocation irqchip/gic-v3-its: Tag ITS device as shared if allocating for a proxy device irqchip/gic-v3-its: Flag device allocation as proxied if behind a PCI bridge
drivers/base/platform-msi.c | 7 +++++++ drivers/irqchip/irq-gic-v3-its-pci-msi.c | 11 ++++++++--- drivers/irqchip/irq-gic-v3-its.c | 3 +++ include/asm-generic/msi.h | 4 ++++ 4 files changed, 22 insertions(+), 3 deletions(-)
-- 2.28.0
| |