aboutsummaryrefslogtreecommitdiffstats
path: root/rust/helpers/xarray.c
diff options
context:
space:
mode:
authorMarc Zyngier <[email protected]>2025-05-13 16:31:41 +0000
committerThomas Gleixner <[email protected]>2025-05-14 10:36:41 +0000
commit713335b6ee29f0045737a1ddfc685bc6040d4baf (patch)
tree60f64e570421c70412254addc580dcda12ff61a7 /rust/helpers/xarray.c
parentgenirq/msi: Add .msi_teardown() callback as the reverse of .msi_prepare() (diff)
downloadkernel-713335b6ee29f0045737a1ddfc685bc6040d4baf.tar.gz
kernel-713335b6ee29f0045737a1ddfc685bc6040d4baf.zip
irqchip/gic-v3-its: Implement .msi_teardown() callback
The ITS driver currently nukes the structure representing an endpoint device translating via an ITS on freeing the last LPI allocated for it. That's an unfortunate state of affair, as it is pretty common for a driver to allocate a single MSI, do something clever, teardown this MSI, and reallocate a whole bunch of them. The NVME driver does exactly that, amongst others. What happens in that case is that the core code is accidentaly issuing another .msi_prepare() call, even if it shouldn't. This luckily cancels the above behaviour and hides the problem. In order to fix the core code, start by implementing the new .msi_teardown() callback. Nothing calls it yet, so a side effect is that the its_dev structure will not be freed and that the DID will stay mapped. Not a big deal, and this will be solved in following patches. Signed-off-by: Marc Zyngier <[email protected]> Signed-off-by: Thomas Gleixner <[email protected]> Link: https://lore.kernel.org/all/[email protected]
Diffstat (limited to 'rust/helpers/xarray.c')
0 files changed, 0 insertions, 0 deletions