diff options
author | Tengfei Yu <moehanabichan@gmail.com> | 2024-01-29 20:33:10 +0800 |
---|---|---|
committer | Will Deacon <will@kernel.org> | 2024-02-09 15:47:55 +0000 |
commit | e73a6b29f1ebf30c44f59a0a228ebed70aa76586 (patch) | |
tree | 009279779280aabfdf19f60c3a5d147e72603c09 | |
parent | f6cc06d6b53540b0c8d9eada04fb6c5bd90e56fd (diff) | |
download | kvmtool-e73a6b29f1ebf30c44f59a0a228ebed70aa76586.tar.gz |
x86: Enable in-kernel irqchip before creating PIT
As the kvm api(https://docs.kernel.org/virt/kvm/api.html) reads,
KVM_CREATE_PIT2 call is only valid after enabling in-kernel irqchip
support via KVM_CREATE_IRQCHIP.
Signed-off-by: Tengfei Yu <moehanabichan@gmail.com>
Link: https://lore.kernel.org/r/20240129123310.28118-1-moehanabichan@gmail.com
Signed-off-by: Will Deacon <will@kernel.org>
-rw-r--r-- | x86/kvm.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -150,10 +150,6 @@ void kvm__arch_init(struct kvm *kvm) if (ret < 0) die_perror("KVM_SET_TSS_ADDR ioctl"); - ret = ioctl(kvm->vm_fd, KVM_CREATE_PIT2, &pit_config); - if (ret < 0) - die_perror("KVM_CREATE_PIT2 ioctl"); - if (ram_size < KVM_32BIT_GAP_START) { kvm->ram_size = ram_size; kvm->ram_start = mmap_anon_or_hugetlbfs(kvm, hugetlbfs_path, ram_size); @@ -175,6 +171,10 @@ void kvm__arch_init(struct kvm *kvm) ret = ioctl(kvm->vm_fd, KVM_CREATE_IRQCHIP); if (ret < 0) die_perror("KVM_CREATE_IRQCHIP ioctl"); + + ret = ioctl(kvm->vm_fd, KVM_CREATE_PIT2, &pit_config); + if (ret < 0) + die_perror("KVM_CREATE_PIT2 ioctl"); } void kvm__arch_delete_ram(struct kvm *kvm) |