mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
KVM: selftests: Fall back to split IRQ chip if full in-kernel chip is unsupported
Now that KVM x86 allows compiling out support for in-kernel I/O APIC (and PIC and PIT) emulation, i.e. allows disabling KVM_CREATE_IRQCHIP for all intents and purposes, fall back to a split IRQ chip for x86 if creating the full in-kernel version fails with ENOTTY. Acked-by: Kai Huang <kai.huang@intel.com> Link: https://lore.kernel.org/r/20250611213557.294358-17-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
@@ -1716,7 +1716,18 @@ void *addr_gpa2alias(struct kvm_vm *vm, vm_paddr_t gpa)
|
||||
/* Create an interrupt controller chip for the specified VM. */
|
||||
void vm_create_irqchip(struct kvm_vm *vm)
|
||||
{
|
||||
vm_ioctl(vm, KVM_CREATE_IRQCHIP, NULL);
|
||||
int r;
|
||||
|
||||
/*
|
||||
* Allocate a fully in-kernel IRQ chip by default, but fall back to a
|
||||
* split model (x86 only) if that fails (KVM x86 allows compiling out
|
||||
* support for KVM_CREATE_IRQCHIP).
|
||||
*/
|
||||
r = __vm_ioctl(vm, KVM_CREATE_IRQCHIP, NULL);
|
||||
if (r && errno == ENOTTY && kvm_has_cap(KVM_CAP_SPLIT_IRQCHIP))
|
||||
vm_enable_cap(vm, KVM_CAP_SPLIT_IRQCHIP, 24);
|
||||
else
|
||||
TEST_ASSERT_VM_VCPU_IOCTL(!r, KVM_CREATE_IRQCHIP, r, vm);
|
||||
|
||||
vm->has_irqchip = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user