diff options
author | James Hogan <james.hogan@imgtec.com> | 2017-03-14 10:15:28 +0000 |
---|---|---|
committer | James Hogan <james.hogan@imgtec.com> | 2017-03-28 14:53:52 +0100 |
commit | 5dee99b24eeffbe673a71237faf551978cd311d3 (patch) | |
tree | c94dfca417fc9acd6ce0164a5c64940547a95801 /fs/nls/mac-celtic.c | |
parent | 372582a6c6fcced38219d06545dd26ad7904bc6f (diff) | |
download | linux-5dee99b24eeffbe673a71237faf551978cd311d3.tar.bz2 |
KVM: MIPS/Emulate: Update CP0_Compare emulation for VZ
Update emulation of guest writes to CP0_Compare for VZ. There are two
main differences compared to trap & emulate:
- Writing to CP0_Compare in the VZ hardware guest context acks any
pending timer, clearing CP0_Cause.TI. If we don't want an ack to take
place we must carefully restore the TI bit if it was previously set.
- Even with guest timer access disabled in CP0_GuestCtl0.GT, if the
guest CP0_Count reaches the guest CP0_Compare the timer interrupt
will assert. To prevent this we must set CP0_GTOffset to move the
guest CP0_Count out of the way of the new guest CP0_Compare, either
before or after depending on whether it is a forwards or backwards
change.
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
Diffstat (limited to 'fs/nls/mac-celtic.c')
0 files changed, 0 insertions, 0 deletions