]> git.karo-electronics.de Git - linux-beck.git/commit
powerpc: Ignore reserved field in DCSR and PVR reads and writes
authorAnton Blanchard <anton@samba.org>
Thu, 19 Jan 2017 03:19:10 +0000 (14:19 +1100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 26 Jan 2017 07:24:39 +0000 (08:24 +0100)
commitbf15e45eee7ab5df30cc9ec0f7030fbccf1d55b0
tree1e1d708412c79ac4114202f3c1c44b46da9bf50e
parente097785467134635a99a223168ff3825c6fb9d01
powerpc: Ignore reserved field in DCSR and PVR reads and writes

commit 178f358208ceb8b38e5cff3f815e0db4a6a70a07 upstream.

IBM bit 31 (for the rest of us - bit 0) is a reserved field in the
instruction definition of mtspr and mfspr. Hardware is encouraged to
(and does) ignore it.

As a result, if userspace executes an mtspr DSCR with the reserved bit
set, we get a DSCR facility unavailable exception. The kernel fails to
match against the expected value/mask, and we silently return to
userspace to try and re-execute the same mtspr DSCR instruction. We
loop forever until the process is killed.

We should do something here, and it seems mirroring what hardware does
is the better option vs killing the process. While here, relax the
matching of mfspr PVR too.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/include/asm/ppc-opcode.h