]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/mce: Fix SLB rebolting during MCE recovery path.
authorMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Thu, 23 Aug 2018 04:56:08 +0000 (10:26 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 23 Aug 2018 13:40:10 +0000 (23:40 +1000)
commit9fa0b64937a1aa6f606797fc9df08c3da8d738b6
tree4a63b54f4c745c965eb10a5b9cd2c317ff883d86
parenta93338c2424889486dd4b8ebf2cb09e499bed91b
powerpc/mce: Fix SLB rebolting during MCE recovery path.

The commit 027baa99c8d ("powerpc/64s: move machine check SLB flushing
to mm/slb.c") introduced a bug in reloading bolted SLB entries. Unused
bolted entries are stored with .esid=0 in the slb_shadow area, and
that value is now used directly as the RB input to slbmte, which means
the RB[52:63] index field is set to 0, which causes SLB entry 0 to be
cleared.

Fix this by storing the index bits in the unused bolted entries, which
directs the slbmte to the right place.

The SLB shadow area is also used by the hypervisor, but PAPR is okay
with that, from LoPAPR v1.1, 14.11.1.3 SLB Shadow Buffer:

  Note: SLB is filled sequentially starting at index 0
  from the shadow buffer ignoring the contents of
  RB field bits 52-63

Fixes: 027baa99c8d3 ("powerpc/64s: move machine check SLB flushing to mm/slb.c")
Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/slb.c