target/arm: kvm: require KVM_CAP_DEVICE_CTRL

The device control API was added in 2013, assume that it is present.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20241024113126.44343-1-pbonzini@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Paolo Bonzini 2024-10-29 12:54:46 +00:00 committed by Peter Maydell
parent 361dfa9757
commit 84f298ea3e
3 changed files with 13 additions and 29 deletions

View file

@ -547,17 +547,10 @@ static void kvm_arm_gic_realize(DeviceState *dev, Error **errp)
KVM_DEV_ARM_VGIC_CTRL_INIT, NULL, true,
&error_abort);
}
} else if (kvm_check_extension(kvm_state, KVM_CAP_DEVICE_CTRL)) {
} else {
error_setg_errno(errp, -ret, "error creating in-kernel VGIC");
error_append_hint(errp,
"Perhaps the host CPU does not support GICv2?\n");
} else if (ret != -ENODEV && ret != -ENOTSUP) {
/*
* Very ancient kernel without KVM_CAP_DEVICE_CTRL: assume that
* ENODEV or ENOTSUP mean "can't create GICv2 with KVM_CREATE_DEVICE",
* and that we will get a GICv2 via KVM_CREATE_IRQCHIP.
*/
error_setg_errno(errp, -ret, "error creating in-kernel VGIC");
return;
}