On Sat, Nov 27, 2021 at 02:23:17AM +0100, Thomas Gleixner wrote: > The current linked list storage for MSI descriptors is suboptimal in > several ways: > > 1) Looking up a MSI desciptor requires a O(n) list walk in the worst case > > 2) The upcoming support of runtime expansion of MSI-X vectors would need > to do a full list walk to figure out whether a particular index is > already associated. > > 3) Runtime expansion of sparse allocations is even more complex as the > current implementation assumes an ordered list (increasing MSI index). > > Use an xarray which solves all of the above problems nicely. > > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > --- > include/linux/msi.h | 19 ++--- > kernel/irq/msi.c | 188 ++++++++++++++++++++++------------------------------ > 2 files changed, 90 insertions(+), 117 deletions(-) Much simpler code too, nice! Reviewed-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>