• Sebastien Dugue's avatar
    powerpc: Make the irq reverse mapping radix tree lockless · 150c6c8f
    Sebastien Dugue authored
    The radix trees used by interrupt controllers for their irq reverse
    mapping (currently only the XICS found on pSeries) have a complex
    locking scheme dating back to before the advent of the lockless radix
    tree.
    
    This takes advantage of the lockless radix tree and of the fact that
    the items of the tree are pointers to a static array (irq_map)
    elements which can never go under us to simplify the locking.
    
    Concurrency between readers and writers is handled by the intrinsic
    properties of the lockless radix tree.  Concurrency between writers is
    handled with a global mutex.
    Signed-off-by: default avatarSebastien Dugue <sebastien.dugue@bull.net>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Michael Ellerman <michael@ellerman.id.au>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    150c6c8f
irq.c 26.7 KB