• Eric W. Biederman's avatar
    [PATCH] msi: only use a single irq_chip for msi interrupts · 277bc33b
    Eric W. Biederman authored
    The logic works like this.
    
    Since we no longer track the state logic by hand in msi.c startup and shutdown
    are no longer needed.
    
    By updating msi_set_mask_bit to work on msi devices that do not implement a
    mask bit we can always call the mask/unmask functions.
    
    What we really have are mask and unmask so we use them to implement the .mask
    and .unmask functions instead of .enable and .disable.
    
    By switching to the handle_edge_irq handler we only need an ack function that
    moves the irq if necessary.  Which removes the old end and ack functions and
    their peculiar logic of sometimes disabling an irq.
    
    This removes the reliance on pre genirq irq handling methods.
    Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Andi Kleen <ak@suse.de>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Greg KH <greg@kroah.com>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    277bc33b
msi.c 25.7 KB