diff options
author | Sam Bobroff | 2017-03-20 00:46:49 +0100 |
---|---|---|
committer | David Gibson | 2017-04-26 04:00:41 +0200 |
commit | e957f6a9b92439a222ecd4ff1c8cdc9700710c72 (patch) | |
tree | 636fa2579717d1b21292ce4010a65a9f22cea749 /include/hw/ppc/spapr.h | |
parent | spapr: Enable ISA 3.0 MMU mode selection via CAS (diff) | |
download | qemu-e957f6a9b92439a222ecd4ff1c8cdc9700710c72.tar.gz qemu-e957f6a9b92439a222ecd4ff1c8cdc9700710c72.tar.xz qemu-e957f6a9b92439a222ecd4ff1c8cdc9700710c72.zip |
spapr: Workaround for broken radix guests
For a little while around 4.9, Linux kernels that saw the radix bit in
ibm,pa-features would attempt to set up the MMU as if they were a
hypervisor, even if they were a guest, which would cause them to
crash.
Work around this by detecting pre-ISA 3.0 guests by their lack of that
bit in option vector 1, and then removing the radix bit from
ibm,pa-features. Note: This now requires regeneration of that node
after CAS negotiation.
Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
[dwg: Fix style nits]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'include/hw/ppc/spapr.h')
-rw-r--r-- | include/hw/ppc/spapr.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index d234efcd29..e27de64d31 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -89,6 +89,7 @@ struct sPAPRMachineState { sPAPROptionVector *ov5; /* QEMU-supported option vectors */ sPAPROptionVector *ov5_cas; /* negotiated (via CAS) option vectors */ bool cas_reboot; + bool cas_legacy_guest_workaround; Notifier epow_notifier; QTAILQ_HEAD(, sPAPREventLogEntry) pending_events; |