aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/vminfo
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2025-09-17 12:16:39 +0200
committerAlexander Potapenko <glider@google.com>2025-09-19 08:38:14 +0000
commit2a4c6c0dbed891610b6d10f663c797e9e80d1981 (patch)
tree505aabccf61b05e5199a782da517b51852596665 /pkg/vminfo
parentbc3f649c1cdcc44bee1e351e1326a9072393736a (diff)
executor: sys/linux/: pkg/runtest: pkg/vminfo: add syz_kvm_assert_syzos_kvm_exit
Implement a pseudo-syscall to check the value of kvm_run.exit_reason
Diffstat (limited to 'pkg/vminfo')
-rw-r--r--pkg/vminfo/linux_syscalls.go92
1 files changed, 47 insertions, 45 deletions
diff --git a/pkg/vminfo/linux_syscalls.go b/pkg/vminfo/linux_syscalls.go
index c5d1cf405..abd749be3 100644
--- a/pkg/vminfo/linux_syscalls.go
+++ b/pkg/vminfo/linux_syscalls.go
@@ -62,49 +62,50 @@ func linuxSupportedLSM(ctx *checkContext, call *prog.Syscall) string {
}
var linuxSyscallChecks = map[string]func(*checkContext, *prog.Syscall) string{
- "openat": supportedOpenat,
- "mount": linuxSupportedMount,
- "socket": linuxSupportedSocket,
- "socketpair": linuxSupportedSocket,
- "pkey_alloc": linuxPkeysSupported,
- "syz_open_dev": linuxSyzOpenDevSupported,
- "syz_open_procfs": linuxSyzOpenProcfsSupported,
- "syz_open_pts": alwaysSupported,
- "syz_execute_func": alwaysSupported,
- "syz_emit_ethernet": linuxNetInjectionSupported,
- "syz_extract_tcp_res": linuxNetInjectionSupported,
- "syz_usb_connect": linuxCheckUSBEmulation,
- "syz_usb_connect_ath9k": linuxCheckUSBEmulation,
- "syz_usb_disconnect": linuxCheckUSBEmulation,
- "syz_usb_control_io": linuxCheckUSBEmulation,
- "syz_usb_ep_write": linuxCheckUSBEmulation,
- "syz_usb_ep_read": linuxCheckUSBEmulation,
- "syz_kvm_setup_cpu": linuxSyzKvmSupported,
- "syz_kvm_vgic_v3_setup": linuxSyzSupportedOnArm64,
- "syz_kvm_setup_syzos_vm": linuxSyzKvmSupported,
- "syz_kvm_add_vcpu": linuxSyzKvmSupported,
- "syz_kvm_assert_syzos_uexit": linuxSyzKvmSupported,
- "syz_kvm_assert_reg": linuxSyzSupportedOnArm64,
- "syz_emit_vhci": linuxVhciInjectionSupported,
- "syz_init_net_socket": linuxSyzInitNetSocketSupported,
- "syz_genetlink_get_family_id": linuxSyzGenetlinkGetFamilyIDSupported,
- "syz_mount_image": linuxSyzMountImageSupported,
- "syz_read_part_table": linuxSyzReadPartTableSupported,
- "syz_io_uring_setup": alwaysSupported,
- "syz_io_uring_submit": alwaysSupported,
- "syz_io_uring_complete": alwaysSupported,
- "syz_memcpy_off": alwaysSupported,
- "syz_btf_id_by_name": linuxBtfVmlinuxSupported,
- "syz_fuse_handle_req": alwaysSupported,
- "syz_80211_inject_frame": linuxWifiEmulationSupported,
- "syz_80211_join_ibss": linuxWifiEmulationSupported,
- "syz_usbip_server_init": linuxSyzUsbIPSupported,
- "syz_clone": alwaysSupported,
- "syz_clone3": alwaysSupported,
- "syz_pkey_set": linuxPkeysSupported,
- "syz_socket_connect_nvme_tcp": linuxSyzSocketConnectNvmeTCPSupported,
- "syz_pidfd_open": alwaysSupported,
- "syz_create_resource": alwaysSupported,
+ "openat": supportedOpenat,
+ "mount": linuxSupportedMount,
+ "socket": linuxSupportedSocket,
+ "socketpair": linuxSupportedSocket,
+ "pkey_alloc": linuxPkeysSupported,
+ "syz_open_dev": linuxSyzOpenDevSupported,
+ "syz_open_procfs": linuxSyzOpenProcfsSupported,
+ "syz_open_pts": alwaysSupported,
+ "syz_execute_func": alwaysSupported,
+ "syz_emit_ethernet": linuxNetInjectionSupported,
+ "syz_extract_tcp_res": linuxNetInjectionSupported,
+ "syz_usb_connect": linuxCheckUSBEmulation,
+ "syz_usb_connect_ath9k": linuxCheckUSBEmulation,
+ "syz_usb_disconnect": linuxCheckUSBEmulation,
+ "syz_usb_control_io": linuxCheckUSBEmulation,
+ "syz_usb_ep_write": linuxCheckUSBEmulation,
+ "syz_usb_ep_read": linuxCheckUSBEmulation,
+ "syz_kvm_setup_cpu": linuxSyzKvmSupported,
+ "syz_kvm_vgic_v3_setup": linuxSyzSupportedOnArm64,
+ "syz_kvm_setup_syzos_vm": linuxSyzKvmSupported,
+ "syz_kvm_add_vcpu": linuxSyzKvmSupported,
+ "syz_kvm_assert_syzos_uexit": linuxSyzKvmSupported,
+ "syz_kvm_assert_syzos_kvm_exit": linuxSyzKvmSupported,
+ "syz_kvm_assert_reg": linuxSyzSupportedOnArm64,
+ "syz_emit_vhci": linuxVhciInjectionSupported,
+ "syz_init_net_socket": linuxSyzInitNetSocketSupported,
+ "syz_genetlink_get_family_id": linuxSyzGenetlinkGetFamilyIDSupported,
+ "syz_mount_image": linuxSyzMountImageSupported,
+ "syz_read_part_table": linuxSyzReadPartTableSupported,
+ "syz_io_uring_setup": alwaysSupported,
+ "syz_io_uring_submit": alwaysSupported,
+ "syz_io_uring_complete": alwaysSupported,
+ "syz_memcpy_off": alwaysSupported,
+ "syz_btf_id_by_name": linuxBtfVmlinuxSupported,
+ "syz_fuse_handle_req": alwaysSupported,
+ "syz_80211_inject_frame": linuxWifiEmulationSupported,
+ "syz_80211_join_ibss": linuxWifiEmulationSupported,
+ "syz_usbip_server_init": linuxSyzUsbIPSupported,
+ "syz_clone": alwaysSupported,
+ "syz_clone3": alwaysSupported,
+ "syz_pkey_set": linuxPkeysSupported,
+ "syz_socket_connect_nvme_tcp": linuxSyzSocketConnectNvmeTCPSupported,
+ "syz_pidfd_open": alwaysSupported,
+ "syz_create_resource": alwaysSupported,
}
func linuxSyzOpenDevSupported(ctx *checkContext, call *prog.Syscall) string {
@@ -180,12 +181,13 @@ func linuxSyzKvmSupported(ctx *checkContext, call *prog.Syscall) string {
if ctx.target.Arch == targets.AMD64 || ctx.target.Arch == targets.I386 {
return ""
}
- case "syz_kvm_setup_syzos_vm$x86", "syz_kvm_add_vcpu$x86", "syz_kvm_assert_syzos_uexit$x86":
+ case "syz_kvm_setup_syzos_vm$x86", "syz_kvm_add_vcpu$x86", "syz_kvm_assert_syzos_uexit$x86",
+ "syz_kvm_assert_syzos_kvm_exit$x86":
if ctx.target.Arch == targets.AMD64 {
return ""
}
case "syz_kvm_setup_cpu$arm64", "syz_kvm_setup_syzos_vm$arm64", "syz_kvm_add_vcpu$arm64",
- "syz_kvm_assert_syzos_uexit$arm64":
+ "syz_kvm_assert_syzos_uexit$arm64", "syz_kvm_assert_syzos_kvm_exit$arm64":
if ctx.target.Arch == targets.ARM64 {
return ""
}