• David Gibson's avatar
    powerpc/book3e: Use set_irq_regs() in the msgsnd/msgrcv IPI path · 0e37d259
    David Gibson authored
    include/asm-generic/irq_regs.h declares per-cpu irq_regs variables and
    get_irq_regs() and set_irq_regs() helper functions to maintain them.
    These can be used to access the proper pt_regs structure related to the
    current interrupt entry (if any).
    
    In the powerpc arch code, this is used to maintain irq regs on
    decrementer and external interrupt exceptions.  However, for the
    doorbell exceptions used by the msgsnd/msgrcv IPI mechanism of newer
    BookE CPUs, the irq_regs are not kept up to date.
    
    In particular this means that xmon will not work properly on SMP,
    because the secondary xmon instances started by IPI will blow up when
    they cannot retrieve the irq regs.
    
    This patch fixes the problem by adding calls to maintain the irq regs
    across doorbell exceptions.
    Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    0e37d259
dbell.c 2.14 KB