diff options
author | James Morse <james.morse@arm.com> | 2019-06-18 16:18:08 +0100 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2019-07-05 13:03:34 +0100 |
commit | dad6321ffacadbd1235faaf84897b63050b81a5f (patch) | |
tree | 6bf8a4feb46790a57d72b7ad50b57fc584468fd6 /arch/arm64/kvm | |
parent | 3276cc2489641f7f37e9558f5fe9d6ae17a25528 (diff) | |
download | linux-dad6321ffacadbd1235faaf84897b63050b81a5f.tar.gz linux-dad6321ffacadbd1235faaf84897b63050b81a5f.tar.bz2 linux-dad6321ffacadbd1235faaf84897b63050b81a5f.zip |
KVM: arm64: Re-mask SError after the one instruction window
KVM consumes any SError that were pending during guest exit with a
dsb/isb and unmasking SError. It currently leaves SError unmasked for
the rest of world-switch.
This means any SError that occurs during this part of world-switch
will cause a hyp-panic. We'd much prefer it to remain pending until
we return to the host.
Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'arch/arm64/kvm')
-rw-r--r-- | arch/arm64/kvm/hyp/entry.S | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm64/kvm/hyp/entry.S b/arch/arm64/kvm/hyp/entry.S index ebc8eb247bc9..5e25cc0e6aab 100644 --- a/arch/arm64/kvm/hyp/entry.S +++ b/arch/arm64/kvm/hyp/entry.S @@ -175,6 +175,8 @@ abort_guest_exit_start: .global abort_guest_exit_end abort_guest_exit_end: + msr daifset, #4 // Mask aborts + // If the exception took place, restore the EL1 exception // context so that we can report some information. // Merge the exception code with the SError pending bit. |