platform-msi: Track shared domain allocation
authorMarc Zyngier <maz@kernel.org>
Sun, 29 Nov 2020 13:52:06 +0000 (13:52 +0000)
committerMarc Zyngier <maz@kernel.org>
Fri, 11 Dec 2020 14:47:50 +0000 (14:47 +0000)
commit91f90daa4fb2b77db7aa25ef2e0206f2e3962665
tree80bfb7c66e37106508a00adbd1726f0046149510
parentfc6c7cd3878641fd43189f15697e7ad0871f5c1a
platform-msi: Track shared domain allocation

We have two flavours of platform-MSI:

- MSIs generated by devices for themselves (the usual case)

- MSIs generated on behalf of other devices, as the generating
  device is some form of bridge (either a wire-to-MSI bridge,
  or even a non-transparent PCI bridge that repaints the PCI
  requester ID).

In the latter case, the underlying interrupt architecture may need
to track this in order to keep the mapping alive even when no MSI
are currently being generated.

Add a set of flags to the generic msi_alloc_info_t structure, as
well as the MSI_ALLOC_FLAGS_PROXY_DEVICE flag that will get
advertized by the platform-MSI code when allocating an irqdomain
for a device.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Tested-by: John Garry <john.garry@huawei.com>
Link: https://lore.kernel.org/r/20201129135208.680293-2-maz@kernel.org
drivers/base/platform-msi.c
include/asm-generic/msi.h