powerpc: Fix DAR reporting when alignment handler faults
authorMichael Ellerman <mpe@ellerman.id.au>
Thu, 24 Aug 2017 10:49:57 +0000 (20:49 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 Sep 2017 12:39:21 +0000 (14:39 +0200)
commit48564b51ac75d81f3f3b584fab8c3be44c7248a8
tree6dfd6d2f2e475b90593e37c4f6f91d06fd0f679c
parent3806cea5c1c509ef66f2cc8a183021ca4f871923
powerpc: Fix DAR reporting when alignment handler faults

commit f9effe925039cf54489b5c04e0d40073bb3a123d upstream.

Anton noticed that if we fault part way through emulating an unaligned
instruction, we don't update the DAR to reflect that.

The DAR value is eventually reported back to userspace as the address
in the SEGV signal, and if userspace is using that value to demand
fault then it can be confused by us not setting the value correctly.

This patch is ugly as hell, but is intended to be the minimal fix and
back ports easily.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Reviewed-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/kernel/align.c