mirror of https://github.com/xemu-project/xemu.git
kvm: i386: require KVM_CAP_DEBUGREGS
This was introduced in KVM in Linux 2.6.35, we can require it unconditionally. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
4b2991666c
commit
f57a4dd311
|
@ -2528,10 +2528,6 @@ static int kvm_init(MachineState *ms)
|
||||||
s->robust_singlestep =
|
s->robust_singlestep =
|
||||||
kvm_check_extension(s, KVM_CAP_X86_ROBUST_SINGLESTEP);
|
kvm_check_extension(s, KVM_CAP_X86_ROBUST_SINGLESTEP);
|
||||||
|
|
||||||
#ifdef KVM_CAP_DEBUGREGS
|
|
||||||
s->debugregs = kvm_check_extension(s, KVM_CAP_DEBUGREGS);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
s->max_nested_state_len = kvm_check_extension(s, KVM_CAP_NESTED_STATE);
|
s->max_nested_state_len = kvm_check_extension(s, KVM_CAP_NESTED_STATE);
|
||||||
|
|
||||||
s->irq_set_ioctl = KVM_IRQ_LINE;
|
s->irq_set_ioctl = KVM_IRQ_LINE;
|
||||||
|
@ -3152,11 +3148,6 @@ int kvm_has_robust_singlestep(void)
|
||||||
return kvm_state->robust_singlestep;
|
return kvm_state->robust_singlestep;
|
||||||
}
|
}
|
||||||
|
|
||||||
int kvm_has_debugregs(void)
|
|
||||||
{
|
|
||||||
return kvm_state->debugregs;
|
|
||||||
}
|
|
||||||
|
|
||||||
int kvm_max_nested_state_length(void)
|
int kvm_max_nested_state_length(void)
|
||||||
{
|
{
|
||||||
return kvm_state->max_nested_state_len;
|
return kvm_state->max_nested_state_len;
|
||||||
|
|
|
@ -193,7 +193,6 @@ unsigned int kvm_get_free_memslots(void);
|
||||||
bool kvm_has_sync_mmu(void);
|
bool kvm_has_sync_mmu(void);
|
||||||
int kvm_has_vcpu_events(void);
|
int kvm_has_vcpu_events(void);
|
||||||
int kvm_has_robust_singlestep(void);
|
int kvm_has_robust_singlestep(void);
|
||||||
int kvm_has_debugregs(void);
|
|
||||||
int kvm_max_nested_state_length(void);
|
int kvm_max_nested_state_length(void);
|
||||||
int kvm_has_gsi_routing(void);
|
int kvm_has_gsi_routing(void);
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,6 @@ struct KVMState
|
||||||
bool coalesced_flush_in_progress;
|
bool coalesced_flush_in_progress;
|
||||||
int vcpu_events;
|
int vcpu_events;
|
||||||
int robust_singlestep;
|
int robust_singlestep;
|
||||||
int debugregs;
|
|
||||||
#ifdef KVM_CAP_SET_GUEST_DEBUG
|
#ifdef KVM_CAP_SET_GUEST_DEBUG
|
||||||
QTAILQ_HEAD(, kvm_sw_breakpoint) kvm_sw_breakpoints;
|
QTAILQ_HEAD(, kvm_sw_breakpoint) kvm_sw_breakpoints;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -93,6 +93,7 @@ const KVMCapabilityInfo kvm_arch_required_capabilities[] = {
|
||||||
KVM_CAP_INFO(MP_STATE),
|
KVM_CAP_INFO(MP_STATE),
|
||||||
KVM_CAP_INFO(SIGNAL_MSI),
|
KVM_CAP_INFO(SIGNAL_MSI),
|
||||||
KVM_CAP_INFO(IRQ_ROUTING),
|
KVM_CAP_INFO(IRQ_ROUTING),
|
||||||
|
KVM_CAP_INFO(DEBUGREGS),
|
||||||
KVM_CAP_LAST_INFO
|
KVM_CAP_LAST_INFO
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4601,10 +4602,6 @@ static int kvm_put_debugregs(X86CPU *cpu)
|
||||||
struct kvm_debugregs dbgregs;
|
struct kvm_debugregs dbgregs;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!kvm_has_debugregs()) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
memset(&dbgregs, 0, sizeof(dbgregs));
|
memset(&dbgregs, 0, sizeof(dbgregs));
|
||||||
for (i = 0; i < 4; i++) {
|
for (i = 0; i < 4; i++) {
|
||||||
dbgregs.db[i] = env->dr[i];
|
dbgregs.db[i] = env->dr[i];
|
||||||
|
@ -4622,10 +4619,6 @@ static int kvm_get_debugregs(X86CPU *cpu)
|
||||||
struct kvm_debugregs dbgregs;
|
struct kvm_debugregs dbgregs;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
|
||||||
if (!kvm_has_debugregs()) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = kvm_vcpu_ioctl(CPU(cpu), KVM_GET_DEBUGREGS, &dbgregs);
|
ret = kvm_vcpu_ioctl(CPU(cpu), KVM_GET_DEBUGREGS, &dbgregs);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue