• Paul Mackerras's avatar
    [POWERPC] Fix handling of unrecoverable SLB miss interrupts · 320787c7
    Paul Mackerras authored
    If an SLB miss interrupt happens while the RI bit of MSR is zero, we
    can't just return, because RI being zero indicates that SRR0/SRR1
    potentially had live values in them, and the process of taking an
    interrupt overwrites them.
    
    This should never happen, but if it does, we try to print a nice oops
    message.  That doesn't work, however, because the code at unrecov_slb
    assumes that the MMU has been turned on, but we call it with the MMU
    off (and have done so since the SLB miss handler was rewritten to run
    without turning the MMU on) -- except on iSeries, where everything runs
    with the MMU on.
    
    This fixes it by adding the necessary code to turn the MMU on if
    necessary.
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    320787c7
head_64.S 39.5 KB