From e3d92500d33aba2aa8289656b0ad937cf484d6bc Mon Sep 17 00:00:00 2001 From: Alexander Potapenko Date: Thu, 25 Jul 2024 16:41:57 +0200 Subject: syz/linux: introduce vcpu_mmap_size for /dev/kvm Instead of guessing the size of the mmap area for struct vcpu_run, always obtain it from ioctl(KVM_GET_VCPU_MMAP_SIZE). --- sys/linux/dev_kvm.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'sys/linux') diff --git a/sys/linux/dev_kvm.txt b/sys/linux/dev_kvm.txt index 98554e303..71ad0cbbd 100644 --- a/sys/linux/dev_kvm.txt +++ b/sys/linux/dev_kvm.txt @@ -14,6 +14,7 @@ resource fd_kvmvm[fd] resource fd_kvmcpu[fd] resource fd_kvmdev[fd] resource fd_sgx_provision[fd] +resource vcpu_mmap_size[int64] openat$kvm(fd const[AT_FDCWD], file ptr[in, string["/dev/kvm"]], flags flags[open_flags], mode const[0]) fd_kvm openat$sgx_provision(fd const[AT_FDCWD], file ptr[in, string["/dev/sgx_provision"]], flags flags[open_flags], mode const[0]) fd_sgx_provision @@ -21,7 +22,7 @@ openat$sgx_provision(fd const[AT_FDCWD], file ptr[in, string["/dev/sgx_provision ioctl$KVM_CREATE_VM(fd fd_kvm, cmd const[KVM_CREATE_VM], type const[0]) fd_kvmvm ioctl$KVM_GET_MSR_INDEX_LIST(fd fd_kvm, cmd const[KVM_GET_MSR_INDEX_LIST], arg ptr[in, kvm_msr_list]) ioctl$KVM_CHECK_EXTENSION(fd fd_kvm, cmd const[KVM_CHECK_EXTENSION], arg intptr) -ioctl$KVM_GET_VCPU_MMAP_SIZE(fd fd_kvm, cmd const[KVM_GET_VCPU_MMAP_SIZE]) +ioctl$KVM_GET_VCPU_MMAP_SIZE(fd fd_kvm, cmd const[KVM_GET_VCPU_MMAP_SIZE]) vcpu_mmap_size ioctl$KVM_GET_SUPPORTED_CPUID(fd fd_kvm, cmd const[KVM_GET_SUPPORTED_CPUID], arg buffer[out]) ioctl$KVM_GET_EMULATED_CPUID(fd fd_kvmvm, cmd const[KVM_GET_EMULATED_CPUID], arg buffer[out]) ioctl$KVM_X86_GET_MCE_CAP_SUPPORTED(fd fd_kvmvm, cmd const[KVM_X86_GET_MCE_CAP_SUPPORTED], arg buffer[out]) @@ -190,7 +191,7 @@ syz_kvm_setup_cpu$ppc64(fd fd_kvmvm, cpufd fd_kvmcpu, usermem vma[24], text ptr[ resource kvm_run_ptr[int64] define KVM_RUN_SIZE sizeof(struct kvm_run) -mmap$KVM_VCPU(addr vma, len const[KVM_RUN_SIZE], prot flags[mmap_prot], flags flags[mmap_flags], cpufd fd_kvmcpu, offset const[0]) kvm_run_ptr +mmap$KVM_VCPU(addr vma, len vcpu_mmap_size, prot flags[mmap_prot], flags flags[mmap_flags], cpufd fd_kvmcpu, offset const[0]) kvm_run_ptr _ = __NR_mmap2 define KVM_EXIT_MMIO_OFFSET offsetof(struct kvm_run, mmio) -- cgit mrf-deployment