• Ganesh Goudar's avatar
    powerpc/mce: Fix access error in mce handler · 3a1e92d0
    Ganesh Goudar authored
    We queue an irq work for deferred processing of mce event in realmode
    mce handler, where translation is disabled. Queuing of the work may
    result in accessing memory outside RMO region, such access needs the
    translation to be enabled for an LPAR running with hash mmu else the
    kernel crashes.
    
    After enabling translation in mce_handle_error() we used to leave it
    enabled to avoid crashing here, but now with the commit
    74c3354b ("powerpc/pseries/mce: restore msr before returning from
    handler") we are restoring the MSR to disable translation.
    
    Hence to fix this enable the translation before queuing the work.
    
    Without this change following trace is seen on injecting SLB multihit in
    an LPAR running with hash mmu.
    
      Oops: Kernel access of bad area, sig: 11 [#1]
      LE PAGE_SIZE=64K MMU=Hash SMP NR_CPUS=2048 NUMA pSeries
      CPU: 5 PID: 1883 Comm: insmod Tainted: G        OE     5.14.0-mce+ #137
      NIP:  c000000000735d60 LR: c000000000318640 CTR: 0000000000000000
      REGS: c00000001ebff9a0 TRAP: 0300   Tainted: G       OE      (5.14.0-mce+)
      MSR:  8000000000001003 <SF,ME,RI,LE>  CR: 28008228  XER: 00000001
      CFAR: c00000000031863c DAR: c00000027fa8fe08 DSISR: 40000000 IRQMASK: 0
      ...
      NIP llist_add_batch+0x0/0x40
      LR  __irq_work_queue_local+0x70/0xc0
      Call Trace:
        0xc00000001ebffc0c (unreliable)
        irq_work_queue+0x40/0x70
        machine_check_queue_event+0xbc/0xd0
        machine_check_early_common+0x16c/0x1f4
    
    Fixes: 74c3354b ("powerpc/pseries/mce: restore msr before returning from handler")
    Signed-off-by: default avatarGanesh Goudar <ganeshgr@linux.ibm.com>
    [mpe: Fix comment formatting, trim oops in change log for readability]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20210909064330.312432-1-ganeshgr@linux.ibm.com
    3a1e92d0
mce.c 19.7 KB