target/ppc: Don't check UPRT in radix mode when in HV real mode
commit24b5e0a5ce36975c24d1870832ad3a97876f460a
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 11 Apr 2019 07:59:59 +0000 (11 09:59 +0200)
committerDavid Gibson <david@gibson.dropbear.id.au>
Fri, 26 Apr 2019 01:37:57 +0000 (26 11:37 +1000)
tree1814e790615a7d0c37485761b9616c70f5265ec7
parent8d83cbf1015f547cd9336881e6b62ae2ca293849
target/ppc: Don't check UPRT in radix mode when in HV real mode

It appears that during kexec, we run for a while in hypervisor
real mode with LPCR:HR set and LPCR:UPRT clear, which trips
the assertion in ppc_radix64_handle_mmu_fault().

First this shouldn't be an assertion, it's a guest error.

Then we shouldn't be checking these things in hypervisor real
mode (or in virtual hypervisor guest real mode which is similar)
as the real HW won't use those LPCR bits in those cases anyway,
so technically it's ok to have this discrepancy.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20190411080004.8690-2-clg@kaod.org>
[dwg: Fix for 32-bit builds]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
target/ppc/mmu-radix64.c