diff options
author | James Hogan <james.hogan@imgtec.com> | 2014-03-14 13:06:07 +0000 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2014-03-19 17:01:34 +0100 |
commit | 15505679362270d02c449626385cb74af8905514 (patch) | |
tree | 85c633a8f1894cf0ad5d46f102c0837050c71202 /net/ceph/msgpool.c | |
parent | 22027945482303573b3600c0e3d7445020c2f29b (diff) | |
download | blackbird-op-linux-15505679362270d02c449626385cb74af8905514.tar.gz blackbird-op-linux-15505679362270d02c449626385cb74af8905514.zip |
MIPS: KVM: Pass reserved instruction exceptions to guest
Previously a reserved instruction exception while in guest code would
cause a KVM internal error if kvm_mips_handle_ri() didn't recognise the
instruction (including a RDHWR from an unrecognised hardware register).
However the guest OS should really have the opportunity to catch the
exception so that it can take the appropriate actions such as sending a
SIGILL to the guest user process or emulating the instruction itself.
Therefore in these cases emulate a guest RI exception and only return
EMULATE_FAIL if that fails, being careful to revert the PC first in case
the exception occurred in a branch delay slot in which case the PC will
already point to the branch target.
Also turn the printk messages relating to these cases into kvm_debug
messages so that they aren't usually visible.
This allows crashme to run in the guest without killing the entire VM.
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Gleb Natapov <gleb@kernel.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Sanjay Lal <sanjayl@kymasys.com>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'net/ceph/msgpool.c')
0 files changed, 0 insertions, 0 deletions