KVM: arm: guest debug, add stub KVM_SET_GUEST_DEBUG ioctl
This commit adds a stub function to support the KVM_SET_GUEST_DEBUG ioctl. Any unsupported flag will return -EINVAL. For now, only KVM_GUESTDBG_ENABLE is supported, although it won't have any effects. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>. Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
This commit is contained in:
committed by
Marc Zyngier
parent
21b6f32f94
commit
0e6f07f29c
@@ -2671,7 +2671,7 @@ handled.
|
|||||||
4.87 KVM_SET_GUEST_DEBUG
|
4.87 KVM_SET_GUEST_DEBUG
|
||||||
|
|
||||||
Capability: KVM_CAP_SET_GUEST_DEBUG
|
Capability: KVM_CAP_SET_GUEST_DEBUG
|
||||||
Architectures: x86, s390, ppc
|
Architectures: x86, s390, ppc, arm64
|
||||||
Type: vcpu ioctl
|
Type: vcpu ioctl
|
||||||
Parameters: struct kvm_guest_debug (in)
|
Parameters: struct kvm_guest_debug (in)
|
||||||
Returns: 0 on success; -1 on error
|
Returns: 0 on success; -1 on error
|
||||||
|
|||||||
@@ -301,13 +301,6 @@ void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)
|
|||||||
kvm_arm_set_running_vcpu(NULL);
|
kvm_arm_set_running_vcpu(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
|
|
||||||
struct kvm_guest_debug *dbg)
|
|
||||||
{
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
|
int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
|
||||||
struct kvm_mp_state *mp_state)
|
struct kvm_mp_state *mp_state)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -290,3 +290,9 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
|
|||||||
{
|
{
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
|
||||||
|
struct kvm_guest_debug *dbg)
|
||||||
|
{
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|||||||
@@ -331,3 +331,30 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
|
|||||||
{
|
{
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define KVM_GUESTDBG_VALID_MASK (KVM_GUESTDBG_ENABLE)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* kvm_arch_vcpu_ioctl_set_guest_debug - set up guest debugging
|
||||||
|
* @kvm: pointer to the KVM struct
|
||||||
|
* @kvm_guest_debug: the ioctl data buffer
|
||||||
|
*
|
||||||
|
* This sets up and enables the VM for guest debugging. Userspace
|
||||||
|
* passes in a control flag to enable different debug types and
|
||||||
|
* potentially other architecture specific information in the rest of
|
||||||
|
* the structure.
|
||||||
|
*/
|
||||||
|
int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
|
||||||
|
struct kvm_guest_debug *dbg)
|
||||||
|
{
|
||||||
|
if (dbg->control & ~KVM_GUESTDBG_VALID_MASK)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
if (dbg->control & KVM_GUESTDBG_ENABLE) {
|
||||||
|
vcpu->guest_debug = dbg->control;
|
||||||
|
} else {
|
||||||
|
/* If not enabled clear all flags */
|
||||||
|
vcpu->guest_debug = 0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user