MIPS: KVM: Make KVM_GET_REG_LIST dynamic
authorJames Hogan <james.hogan@imgtec.com>
Wed, 15 Jun 2016 18:29:49 +0000 (19:29 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 15 Jun 2016 21:58:24 +0000 (23:58 +0200)
commitf5c43bd4218c0d7bd65b010fd080cd6edeaeb4c8
tree8b8311296fef7adc91a2f48b97a0dc99f11fb746
parentcc68d22f9727d02c1d981d27c11389fd9413e419
MIPS: KVM: Make KVM_GET_REG_LIST dynamic

Make the implementation of KVM_GET_REG_LIST more dynamic so that only
the subset of registers actually available can be exposed to user mode.
This is important for VZ where some of the guest register state may not
be possible to prevent the guest from accessing, therefore the user
process may need to be aware of the state even if it doesn't understand
what the state is for.

This also allows different MIPS KVM implementations to provide different
registers to one another, by way of new num_regs(vcpu) and
copy_reg_indices(vcpu, indices) callback functions, currently just
stubbed for trap & emulate.

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
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/mips/include/asm/kvm_host.h
arch/mips/kvm/mips.c
arch/mips/kvm/trap_emul.c