From 3b7466b943b5126cb450f32b99d54bfb536e510d Mon Sep 17 00:00:00 2001 From: Marios Pomonis Date: Tue, 1 Apr 2025 01:43:18 -0700 Subject: executor/kvm: add x86-64 SYZOS fuzzer This commit adds the actual SyzOS fuzzer for x86-64 and a small test. It also updates some necessary parts of the ARM version and adds some glue for i386. --- sys/linux/dev_kvm.txt | 1 - sys/linux/dev_kvm_amd64.txt | 25 ++++++++++--------- sys/linux/dev_kvm_arm64.txt | 2 +- sys/linux/test/amd64-syz_kvm_setup_syzos_vm | 29 ++++++++++++++++++++++ sys/linux/test/arm64-syz_kvm_setup_syzos_vm | 6 ++--- .../arm64-syz_kvm_setup_syzos_vm-enable-pmu-mrs | 2 +- .../arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr | 2 +- ...64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-0 | 2 +- ...64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-1 | 2 +- ...64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-2 | 2 +- .../test/arm64-syz_kvm_setup_syzos_vm-memwrite | 4 +-- sys/linux/test/arm64-syz_kvm_setup_syzos_vm-mrs | 2 +- sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr | 2 +- .../test/arm64-syz_kvm_setup_syzos_vm-msr-emul-0 | 2 +- .../test/arm64-syz_kvm_setup_syzos_vm-msr-emul-1 | 2 +- .../test/arm64-syz_kvm_setup_syzos_vm-msr-emul-2 | 2 +- .../test/arm64-syz_kvm_setup_syzos_vm-msr-emul-3 | 2 +- .../test/arm64-syz_kvm_setup_syzos_vm-msr-emul-4 | 2 +- sys/linux/test/arm64-syz_kvm_setup_syzos_vm-smc | 2 +- sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3 | 4 +-- .../test/arm64-syz_kvm_setup_syzos_vm-vgicv3-cpu1 | 4 +-- .../test/arm64-syz_kvm_setup_syzos_vm-vgicv3-its | 4 +-- .../arm64-syz_kvm_setup_syzos_vm-vgicv3-its-cmd | 4 +-- .../arm64-syz_kvm_setup_syzos_vm-vgicv3-unroll | 4 +-- sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfe | 2 +- sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfet | 6 ++--- sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfi | 2 +- sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfit | 6 ++--- 28 files changed, 79 insertions(+), 50 deletions(-) create mode 100644 sys/linux/test/amd64-syz_kvm_setup_syzos_vm (limited to 'sys/linux') diff --git a/sys/linux/dev_kvm.txt b/sys/linux/dev_kvm.txt index 10313a0c1..2c5ebdf21 100644 --- a/sys/linux/dev_kvm.txt +++ b/sys/linux/dev_kvm.txt @@ -50,7 +50,6 @@ ioctl$KVM_CAP_HALT_POLL(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_ ioctl$KVM_CAP_DIRTY_LOG_RING(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_DIRTY_LOG_RING, flags[kvm_dirty_log_sizes, int64]]]) ioctl$KVM_CAP_DIRTY_LOG_RING_ACQ_REL(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_DIRTY_LOG_RING_ACQ_REL, flags[kvm_dirty_log_sizes, int64]]]) - # TODO: need more precise handling for arguments below ioctl$KVM_CAP_PTP_KVM(fd fd_kvmvm, cmd const[KVM_ENABLE_CAP], arg ptr[in, kvm_enable_cap[KVM_CAP_PTP_KVM, void]]) diff --git a/sys/linux/dev_kvm_amd64.txt b/sys/linux/dev_kvm_amd64.txt index d652e8379..0350f548d 100644 --- a/sys/linux/dev_kvm_amd64.txt +++ b/sys/linux/dev_kvm_amd64.txt @@ -19,30 +19,33 @@ syz_kvm_setup_syzos_vm$x86(fd fd_kvmvm, usermem vma[1024]) kvm_syz_vm$x86 # Create a VCPU inside a kvm_syz_vm VM. syz_kvm_add_vcpu$x86(vm kvm_syz_vm$x86, text ptr[in, kvm_text$x86]) fd_kvmcpu +# Test assertions, will not be used by the fuzzer. +syz_kvm_assert_syzos_uexit$x86(run kvm_run_ptr, exitcode intptr) (no_generate) + # Pseudo call that setups VCPU into a reasonable interesting state for execution. # The interface is designed for extensibility so that addition of new options does not invalidate all existing programs. syz_kvm_setup_cpu$x86(fd fd_kvmvm, cpufd fd_kvmcpu, usermem vma[24], text ptr[in, array[kvm_text_x86, 1]], ntext len[text], flags flags[kvm_setup_flags], opts ptr[in, array[kvm_setup_opt_x86, 0:2]], nopt len[opts]) kvm_text$x86 { - typ const[0, intptr] - text ptr[in, array[syzos_api_call$x86, 1:32]] - size bytesize[text, int64] + typ const[0, intptr] + text ptr[in, array[syzos_api_call$x86, 1:32]] + size bytesize[text, int64] } syzos_api_code$x86 { - insns text[x86_64] - ret const[0xc3, int8] + insns text[x86_64] + ret const[0xc3, int8] } [packed] type syzos_api$x86[NUM, PAYLOAD] { - call const[NUM, int64] - size bytesize[parent, int64] - payload PAYLOAD + call const[NUM, int64] + size bytesize[parent, int64] + payload PAYLOAD } syzos_api_call$x86 [ - uexit syzos_api$x86[0, intptr] - code syzos_api$x86[1, syzos_api_code$x86] + uexit syzos_api$x86[0, intptr] + code syzos_api$x86[1, syzos_api_code$x86] ] [varlen] kvm_text_x86 [ @@ -532,5 +535,3 @@ kvm_memory_attributes { attributes flags[kvm_memory_attribute_flags, int64] flags const[0, int64] } - - diff --git a/sys/linux/dev_kvm_arm64.txt b/sys/linux/dev_kvm_arm64.txt index be43a741a..ef9a1a4b7 100644 --- a/sys/linux/dev_kvm_arm64.txt +++ b/sys/linux/dev_kvm_arm64.txt @@ -26,7 +26,7 @@ kvm_num_irqs = 32, 64, 128, 256, 512 syz_kvm_vgic_v3_setup(fd fd_kvmvm, ncpus intptr[0:4], nirqs flags[kvm_num_irqs]) fd_kvmdev # Test assertions, will not be used by the fuzzer. -syz_kvm_assert_syzos_uexit(run kvm_run_ptr, exitcode int64) (no_generate) +syz_kvm_assert_syzos_uexit$arm64(run kvm_run_ptr, exitcode int64) (no_generate) syz_kvm_assert_reg(fd fd_kvmcpu, reg int64, value int64) (no_generate) # Old-style way to set up a CPU inside a KVM VM. diff --git a/sys/linux/test/amd64-syz_kvm_setup_syzos_vm b/sys/linux/test/amd64-syz_kvm_setup_syzos_vm new file mode 100644 index 000000000..09d6cfe27 --- /dev/null +++ b/sys/linux/test/amd64-syz_kvm_setup_syzos_vm @@ -0,0 +1,29 @@ +# +# requires: arch=amd64 -threaded +# +r0 = openat$kvm(0, &AUTO='/dev/kvm\x00', 0x0, 0x0) +r1 = ioctl$KVM_CREATE_VM(r0, AUTO, 0x0) +r2 = syz_kvm_setup_syzos_vm$x86(r1, &(0x7f0000c00000/0x400000)=nil) +# Perform two uexits. The first one is done via a code blob: +# 4831ff xor rdi,rdi +# 48c7c600000400 mov rsi,0x40000 +# 4881c600010000 add rsi,0x100 +# 48893e mov QWORD PTR [rsi],rdi +# The second uexit is done via a syzos API command that sets uexit exit code to 0xaaaa. +# +r3 = syz_kvm_add_vcpu$x86(r2, &AUTO={0x0, &AUTO=[@code={AUTO, AUTO, {"4831ff48c7c6000004004881c60001000048893e", 0xc3}}, @uexit={AUTO, AUTO, 0xaaaa}], AUTO}) +r4 = ioctl$KVM_GET_VCPU_MMAP_SIZE(r0, AUTO) +r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) + +# Run till the first uexit. +# +ioctl$KVM_RUN(r3, AUTO, 0x0) +syz_kvm_assert_syzos_uexit$x86(r5, 0x0) +# Run till the second uexit. +# +ioctl$KVM_RUN(r3, AUTO, 0x0) +syz_kvm_assert_syzos_uexit$x86(r5, 0xaaaa) +# Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. +# +ioctl$KVM_RUN(r3, AUTO, 0x0) +syz_kvm_assert_syzos_uexit$x86(r5, 0xffffffffffffffff) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm index 8ca716cd7..b2a0c59b4 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm @@ -19,12 +19,12 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the first uexit. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0x0) +syz_kvm_assert_syzos_uexit$arm64(r5, 0x0) # Run till the second uexit. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xaaaa) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xaaaa) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-mrs b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-mrs index 636660530..8a6dab724 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-mrs +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-mrs @@ -22,4 +22,4 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr index 4a4697a53..c2586d557 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr @@ -22,5 +22,5 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) syz_kvm_assert_reg(r3, 0x603000000013df40, 0x8000) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-0 b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-0 index 56a1f2c83..2e8f0fba9 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-0 +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-0 @@ -35,7 +35,7 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) syz_kvm_assert_reg(r3, 0x603000000013c4f1, 0x8000) syz_kvm_assert_reg(r3, 0x603000000013c4f2, 0x8000) syz_kvm_assert_reg(r3, 0x603000000013dce0, 0x8000) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-1 b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-1 index df58158c8..6ed9d7e2f 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-1 +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-1 @@ -35,7 +35,7 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) syz_kvm_assert_reg(r3, 0x603000000013dcea, 0x8000) syz_kvm_assert_reg(r3, 0x603000000013dcf0, 0x8000) syz_kvm_assert_reg(r3, 0x603000000013dcf3, 0x8000) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-2 b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-2 index cbe4f09fe..5f9720d25 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-2 +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-enable-pmu-msr-emul-2 @@ -32,7 +32,7 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) syz_kvm_assert_reg(r3, 0x603000000013df60, 0x8000) syz_kvm_assert_reg(r3, 0x603000000013df61, 0x8000) syz_kvm_assert_reg(r3, 0x603000000013df62, 0x8000) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-memwrite b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-memwrite index 4f36d5be3..187eadbc0 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-memwrite +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-memwrite @@ -13,8 +13,8 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the emulated uexit. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0x0) +syz_kvm_assert_syzos_uexit$arm64(r5, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-mrs b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-mrs index 3397c9e6e..b984289b2 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-mrs +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-mrs @@ -14,4 +14,4 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr index acb3c10ca..1be423dbb 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr @@ -14,5 +14,5 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) syz_kvm_assert_reg(r3, 0x603000000013c600, 0xfefefee0) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-0 b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-0 index 3f1164b71..e329712d0 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-0 +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-0 @@ -26,7 +26,7 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) syz_kvm_assert_reg(r3, 0x6030000000138010, 0x8000) syz_kvm_assert_reg(r3, 0x6030000000138012, 0x8000) syz_kvm_assert_reg(r3, 0x6030000000138004, 0x8000) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-1 b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-1 index f6625976d..adc2c0934 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-1 +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-1 @@ -26,7 +26,7 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) syz_kvm_assert_reg(r3, 0x6030000000138015, 0x8000) syz_kvm_assert_reg(r3, 0x603000000013801d, 0x8000) syz_kvm_assert_reg(r3, 0x6030000000138025, 0x8000) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-2 b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-2 index 8c9ee2de6..14836d6c7 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-2 +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-2 @@ -26,7 +26,7 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) syz_kvm_assert_reg(r3, 0x6030000000138017, 0x8000) syz_kvm_assert_reg(r3, 0x603000000013801f, 0x8000) syz_kvm_assert_reg(r3, 0x6030000000138084, 0x8000) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-3 b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-3 index 8e8389c0a..8c3e6db3b 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-3 +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-3 @@ -26,7 +26,7 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) syz_kvm_assert_reg(r3, 0x603000000013c520, 0x8000) syz_kvm_assert_reg(r3, 0x603000000013c521, 0x8000) syz_kvm_assert_reg(r3, 0x603000000013c522, 0x8000) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-4 b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-4 index c99054cf7..e206d3407 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-4 +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-msr-emul-4 @@ -26,7 +26,7 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) syz_kvm_assert_reg(r3, 0x603000000013c65e, 0x8000) syz_kvm_assert_reg(r3, 0x603000000013c65f, 0x8000) syz_kvm_assert_reg(r3, 0x603000000013c661, 0x8000) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-smc b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-smc index 143d6d61c..bb91f426b 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-smc +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-smc @@ -25,4 +25,4 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3 b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3 index 541aaed30..242e48475 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3 +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3 @@ -12,7 +12,7 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) # # Calling KVM_RUN here again would result in infinite loop. # Instead, signal SPI 32 (0x1000020), so that the guest can execute another uexit in the IRQ handler. @@ -21,4 +21,4 @@ ioctl$KVM_IRQ_LINE(r1, AUTO, &AUTO={0x1000020, 0x1}) ioctl$KVM_RUN(r3, AUTO, 0x0) # 0xfffffffffffffffe is UEXIT_IRQ. # -syz_kvm_assert_syzos_uexit(r5, 0xfffffffffffffffe) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xfffffffffffffffe) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-cpu1 b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-cpu1 index ff552c5b7..5ee849468 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-cpu1 +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-cpu1 @@ -13,11 +13,11 @@ r6 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r5, 0x3, 0x1, r3, 0x0) r7 = mmap$KVM_VCPU(&(0x7f000000a000/0x1000)=nil, r5, 0x3, 0x1, r4, 0x0) ioctl$KVM_RUN(r4, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r7, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r7, 0xffffffffffffffff) # # Calling KVM_RUN here again would result in infinite loop. # Instead, signal SPI 32 on CPU 1 (0x1010020), so that the guest can execute another uexit in the IRQ handler. # ioctl$KVM_IRQ_LINE(r1, AUTO, &AUTO={0x1010020, 0x1}) ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r6, 0xfffffffffffffffe) +syz_kvm_assert_syzos_uexit$arm64(r6, 0xfffffffffffffffe) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-its b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-its index 6e642da75..a2570b6a0 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-its +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-its @@ -27,7 +27,7 @@ r6 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r5, 0x3, 0x1, r3, 0x0) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r6, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r6, 0xffffffffffffffff) # # Calling KVM_RUN here again would result in infinite loop. # Instead, signal LPI 0x2000 that is mapped to the event 0, so that the guest can execute another uexit in the IRQ handler. @@ -36,4 +36,4 @@ syz_kvm_assert_syzos_uexit(r6, 0xffffffffffffffff) # ioctl$KVM_SIGNAL_MSI(r1, AUTO, &AUTO={0x8090040, 0x0, 0x0, 0x1, 0x0, ""}) ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r6, 0xfffffffffffffffe) +syz_kvm_assert_syzos_uexit$arm64(r6, 0xfffffffffffffffe) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-its-cmd b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-its-cmd index d78a013c4..a3eec318c 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-its-cmd +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-its-cmd @@ -31,9 +31,9 @@ r6 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r5, 0x3, 0x1, r3, 0x0) # This KVM_RUN will stop after receiving the LPI. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r6, 0xfffffffffffffffe) +syz_kvm_assert_syzos_uexit$arm64(r6, 0xfffffffffffffffe) # # This KVM_RUN will stop after finishing the user program. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r6, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r6, 0xffffffffffffffff) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-unroll b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-unroll index 761974c7d..0110d0f1a 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-unroll +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-vgicv3-unroll @@ -20,11 +20,11 @@ r5 = ioctl$KVM_GET_VCPU_MMAP_SIZE(r0, AUTO) r6 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r5, 0x3, 0x1, r3, 0x0) ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r6, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r6, 0xffffffffffffffff) # # Calling KVM_RUN here again would result in infinite loop. # Instead, signal SPI 32 (0x1000020), so that the guest can execute another uexit in the IRQ handler. # ioctl$KVM_IRQ_LINE(r1, AUTO, &AUTO={0x1000020, 0x1}) ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r6, 0xfffffffffffffffe) +syz_kvm_assert_syzos_uexit$arm64(r6, 0xfffffffffffffffe) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfe b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfe index 0c74580b5..9f8a17d1c 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfe +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfe @@ -14,4 +14,4 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the first uexit. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0x0) +syz_kvm_assert_syzos_uexit$arm64(r5, 0x0) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfet b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfet index 3e5850890..6c99a486c 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfet +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfet @@ -14,12 +14,12 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the first uexit. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0x0) +syz_kvm_assert_syzos_uexit$arm64(r5, 0x0) # Run till the second uexit. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xaaaa) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xaaaa) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfi b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfi index 802783b4e..229a83e4e 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfi +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfi @@ -14,4 +14,4 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the first uexit. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0x0) +syz_kvm_assert_syzos_uexit$arm64(r5, 0x0) diff --git a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfit b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfit index 36bcb4bdf..ffff97c46 100644 --- a/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfit +++ b/sys/linux/test/arm64-syz_kvm_setup_syzos_vm-wfit @@ -14,12 +14,12 @@ r5 = mmap$KVM_VCPU(&(0x7f0000009000/0x1000)=nil, r4, 0x3, 0x1, r3, 0x0) # Run till the first uexit. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0x0) +syz_kvm_assert_syzos_uexit$arm64(r5, 0x0) # Run till the second uexit. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xaaaa) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xaaaa) # Run till the end of guest_main(). 0xffffffffffffffff is UEXIT_END. # ioctl$KVM_RUN(r3, AUTO, 0x0) -syz_kvm_assert_syzos_uexit(r5, 0xffffffffffffffff) +syz_kvm_assert_syzos_uexit$arm64(r5, 0xffffffffffffffff) -- cgit mrf-deployment