• Eric W. Biederman's avatar
    [PATCH] genirq: msi: make the msi code irq based and not vector based · 1ce03373
    Eric W. Biederman authored
    The msi currently allocates irqs backwards.  First it allocates a platform
    dependent routing value for an interrupt the ``vector'' and then it figures
    out from the vector which irq you are on.
    
    For ia64 this is fine.  For x86 and x86_64 this is complete nonsense and makes
    an enourmous mess of the irq handling code and prevents some pretty
    significant cleanups in the code for handling large numbers of irqs.
    
    This patch refactors msi.c to work in terms of irqs and create_irq/destroy_irq
    for dynamically managing irqs.
    
    Hopefully this is finally a version of msi.c that is useful on more than just
    x86 derivatives.
    Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Rajesh Shah <rajesh.shah@intel.com>
    Cc: Andi Kleen <ak@muc.de>
    Cc: "Protasevich, Natalie" <Natalie.Protasevich@UNISYS.com>
    Cc: "Luck, Tony" <tony.luck@intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    1ce03373
msi.c 28.1 KB