ppc: Rework generation of priv and inval interrupts
commit9b2fadda3e0196ffd485adde4fe9cdd6fae35300
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 21 Jun 2016 21:48:51 +0000 (21 23:48 +0200)
committerDavid Gibson <david@gibson.dropbear.id.au>
Thu, 23 Jun 2016 02:43:54 +0000 (23 12:43 +1000)
treee771c86394816930b2190bee08832b26a6a4aca0
parent33595dc9f3f4839fa7d1195df6007f3457e515be
ppc: Rework generation of priv and inval interrupts

Recent server processors use the Hypervisor Emulation Assistance
interrupt for illegal instructions and *some* type of SPR accesses.

Also the code was always generating inval instructions even for priv
violations due to setting the wrong flags

Finally, the checking for PR/HV was open coded everywhere.

This reworks it all, using little helper macros for checking, and
adding the HV interrupt (which gets converted back to program check
in the slow path of excp_helper.c on CPUs that don't want it).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[clg: fixed checkpatch.pl errors ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
linux-user/main.c
target-ppc/excp_helper.c
target-ppc/translate.c