powerpc/pseries: Handle UE event for memcpy_mcsafe
authorGanesh Goudar <ganeshgr@linux.ibm.com>
Thu, 26 Mar 2020 18:49:16 +0000 (00:19 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 27 Mar 2020 03:59:35 +0000 (14:59 +1100)
commitefbc4303b255bb80ab1283794b36dd5fe1fb0ec3
tree33207e06e43bb669c060e6e050fcd675513e6b0b
parentc72e8da06250390bb7759399a32fa0ab6f84e6d1
powerpc/pseries: Handle UE event for memcpy_mcsafe

memcpy_mcsafe has been implemented for power machines which is used
by pmem infrastructure, so that an UE encountered during memcpy from
pmem devices would not result in panic instead a right error code
is returned. The implementation expects machine check handler to ignore
the event and set nip to continue the execution from fixup code.

Appropriate changes are already made to powernv machine check handler,
make similar changes to pseries machine check handler to ignore the
the event and set nip to continue execution at the fixup entry if we
hit UE at an instruction with a fixup entry.

while we are at it, have a common function which searches the exception
table entry and updates nip with fixup address, and any future common
changes can be made in this function that are valid for both architectures.

powernv changes are made by
commit 895e3dceeb97 ("powerpc/mce: Handle UE event for memcpy_mcsafe")

Reviewed-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Reviewed-by: Santosh S <santosh@fossix.org>
Signed-off-by: Ganesh Goudar <ganeshgr@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200326184916.31172-1-ganeshgr@linux.ibm.com
arch/powerpc/include/asm/mce.h
arch/powerpc/kernel/mce.c
arch/powerpc/kernel/mce_power.c
arch/powerpc/platforms/pseries/ras.c