Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions executor/common_linux.h
Original file line number Diff line number Diff line change
Expand Up @@ -3199,8 +3199,7 @@ static long syz_mount_image(
#endif

#if SYZ_EXECUTOR || __NR_syz_kvm_setup_cpu || __NR_syz_kvm_vgic_v3_setup || __NR_syz_kvm_setup_syzos_vm || __NR_syz_kvm_add_vcpu || __NR_syz_kvm_assert_syzos_uexit || __NR_syz_kvm_assert_reg || __NR_syz_kvm_assert_syzos_kvm_exit
// KVM is not yet supported on RISC-V
#if !GOARCH_riscv64 && !GOARCH_arm
#if !GOARCH_arm
#include <errno.h>
#include <fcntl.h>
#include <linux/kvm.h>
Expand All @@ -3217,7 +3216,7 @@ static long syz_mount_image(
#include "common_kvm_arm64.h"
#elif GOARCH_ppc64 || GOARCH_ppc64le
#include "common_kvm_ppc64.h"
#elif !GOARCH_arm && (SYZ_EXECUTOR || __NR_syz_kvm_setup_cpu)
#elif SYZ_EXECUTOR || __NR_syz_kvm_setup_cpu
static volatile long syz_kvm_setup_cpu(volatile long a0, volatile long a1, volatile long a2, volatile long a3, volatile long a4, volatile long a5, volatile long a6, volatile long a7)
{
return 0;
Expand Down
2 changes: 1 addition & 1 deletion sys/linux/dev_kvm.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright 2015 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

meta arches["386", "amd64", "arm64", "mips64le", "ppc64le", "s390x"]
meta arches["386", "amd64", "arm64", "mips64le", "ppc64le", "s390x", "riscv64"]

include <linux/kvm.h>
include <linux/kvm_host.h>
Expand Down
120 changes: 60 additions & 60 deletions sys/linux/dev_kvm.txt.const
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# Code generated by syz-sysgen. DO NOT EDIT.
arches = 386, amd64, arm64, mips64le, ppc64le, s390x
arches = 386, amd64, arm64, mips64le, ppc64le, s390x, riscv64
AT_FDCWD = 18446744073709551516
KVM_ARM_VCPU_PMU_V3_CTRL = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
KVM_ARM_VCPU_PMU_V3_FILTER = 386:amd64:mips64le:ppc64le:s390x:???, arm64:2
KVM_ARM_VCPU_PMU_V3_INIT = 386:amd64:mips64le:ppc64le:s390x:???, arm64:1
KVM_ARM_VCPU_PMU_V3_IRQ = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
KVM_ARM_VCPU_PMU_V3_SET_PMU = 386:amd64:mips64le:ppc64le:s390x:???, arm64:3
KVM_ARM_VCPU_PVTIME_CTRL = 386:amd64:mips64le:ppc64le:s390x:???, arm64:2
KVM_ARM_VCPU_PVTIME_IPA = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
KVM_ARM_VCPU_TIMER_CTRL = 386:amd64:mips64le:ppc64le:s390x:???, arm64:1
KVM_ARM_VCPU_TIMER_IRQ_PTIMER = 386:amd64:mips64le:ppc64le:s390x:???, arm64:1
KVM_ARM_VCPU_TIMER_IRQ_VTIMER = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
KVM_ARM_VM_SMCCC_CTRL = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
KVM_ARM_VM_SMCCC_FILTER = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
KVM_ARM_VCPU_PMU_V3_CTRL = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:0
KVM_ARM_VCPU_PMU_V3_FILTER = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:2
KVM_ARM_VCPU_PMU_V3_INIT = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:1
KVM_ARM_VCPU_PMU_V3_IRQ = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:0
KVM_ARM_VCPU_PMU_V3_SET_PMU = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:3
KVM_ARM_VCPU_PVTIME_CTRL = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:2
KVM_ARM_VCPU_PVTIME_IPA = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:0
KVM_ARM_VCPU_TIMER_CTRL = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:1
KVM_ARM_VCPU_TIMER_IRQ_PTIMER = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:1
KVM_ARM_VCPU_TIMER_IRQ_VTIMER = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:0
KVM_ARM_VM_SMCCC_CTRL = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:0
KVM_ARM_VM_SMCCC_FILTER = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:0
KVM_ASSIGN_DEV_IRQ = 1077980784
KVM_ASSIGN_PCI_DEVICE = 2151722601
KVM_ASSIGN_SET_INTX_MASK = 1077980836
Expand All @@ -33,20 +33,20 @@ KVM_CREATE_VCPU = 44609, mips64le:ppc64le:536915521
KVM_CREATE_VM = 44545, mips64le:ppc64le:536915457
KVM_DEASSIGN_DEV_IRQ = 1077980789
KVM_DEASSIGN_PCI_DEVICE = 1077980786
KVM_DEV_ARM_ITS_CTRL_RESET = 386:amd64:mips64le:ppc64le:s390x:???, arm64:4
KVM_DEV_ARM_ITS_RESTORE_TABLES = 386:amd64:mips64le:ppc64le:s390x:???, arm64:2
KVM_DEV_ARM_ITS_SAVE_TABLES = 386:amd64:mips64le:ppc64le:s390x:???, arm64:1
KVM_DEV_ARM_VGIC_CTRL_INIT = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
KVM_DEV_ARM_VGIC_GRP_ADDR = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
KVM_DEV_ARM_VGIC_GRP_CPU_REGS = 386:amd64:mips64le:ppc64le:s390x:???, arm64:2
KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS = 386:amd64:mips64le:ppc64le:s390x:???, arm64:6
KVM_DEV_ARM_VGIC_GRP_CTRL = 386:amd64:mips64le:ppc64le:s390x:???, arm64:4
KVM_DEV_ARM_VGIC_GRP_DIST_REGS = 386:amd64:mips64le:ppc64le:s390x:???, arm64:1
KVM_DEV_ARM_VGIC_GRP_ITS_REGS = 386:amd64:mips64le:ppc64le:s390x:???, arm64:8
KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO = 386:amd64:mips64le:ppc64le:s390x:???, arm64:7
KVM_DEV_ARM_VGIC_GRP_NR_IRQS = 386:amd64:mips64le:ppc64le:s390x:???, arm64:3
KVM_DEV_ARM_VGIC_GRP_REDIST_REGS = 386:amd64:mips64le:ppc64le:s390x:???, arm64:5
KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES = 386:amd64:mips64le:ppc64le:s390x:???, arm64:3
KVM_DEV_ARM_ITS_CTRL_RESET = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:4
KVM_DEV_ARM_ITS_RESTORE_TABLES = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:2
KVM_DEV_ARM_ITS_SAVE_TABLES = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:1
KVM_DEV_ARM_VGIC_CTRL_INIT = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:0
KVM_DEV_ARM_VGIC_GRP_ADDR = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:0
KVM_DEV_ARM_VGIC_GRP_CPU_REGS = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:2
KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:6
KVM_DEV_ARM_VGIC_GRP_CTRL = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:4
KVM_DEV_ARM_VGIC_GRP_DIST_REGS = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:1
KVM_DEV_ARM_VGIC_GRP_ITS_REGS = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:8
KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:7
KVM_DEV_ARM_VGIC_GRP_NR_IRQS = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:3
KVM_DEV_ARM_VGIC_GRP_REDIST_REGS = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:5
KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:3
KVM_DEV_TYPE_ARM_PV_TIME = 10
KVM_DEV_TYPE_ARM_VGIC_ITS = 8
KVM_DEV_TYPE_ARM_VGIC_V2 = 5
Expand All @@ -72,21 +72,21 @@ KVM_GET_DEVICE_ATTR = 1075359458, mips64le:ppc64le:2149101282
KVM_GET_DIRTY_LOG = 1074835010, mips64le:ppc64le:2148576834
KVM_GET_MP_STATE = 2147790488, mips64le:ppc64le:1074048664
KVM_GET_ONE_REG = 1074835115, mips64le:ppc64le:2148576939
KVM_GET_REGS = 2156965505, arm64:2204151425, mips64le:1092136577, ppc64le:1099476609, s390x:2155916929
KVM_GET_REGS = 2156965505, arm64:2204151425, mips64le:1092136577, ppc64le:1099476609, s390x:2155916929, riscv64:2147528321
KVM_GET_REG_LIST = 3221794480
KVM_GET_SREGS = 2167975555, arm64:2147528323, mips64le:1073786499, ppc64le:1154526851, s390x:2160111235
KVM_GET_SREGS = 2167975555, arm64:riscv64:2147528323, mips64le:1073786499, ppc64le:1154526851, s390x:2160111235
KVM_GET_STATS_FD = 44750, mips64le:ppc64le:536915662
KVM_GET_VCPU_EVENTS = 2151722655, mips64le:ppc64le:s390x:???
KVM_GET_VCPU_EVENTS = 2151722655, mips64le:ppc64le:s390x:riscv64:???
KVM_GET_VCPU_MMAP_SIZE = 44548, mips64le:ppc64le:536915460
KVM_GUESTDBG_BLOCKIRQ = 1048576, arm64:mips64le:ppc64le:s390x:???
KVM_GUESTDBG_BLOCKIRQ = 1048576, arm64:mips64le:ppc64le:s390x:riscv64:???
KVM_GUESTDBG_ENABLE = 1
KVM_GUESTDBG_EXIT_PENDING = 386:amd64:arm64:mips64le:ppc64le:???, s390x:268435456
KVM_GUESTDBG_INJECT_BP = 524288, arm64:mips64le:ppc64le:s390x:???
KVM_GUESTDBG_INJECT_DB = 262144, arm64:mips64le:ppc64le:s390x:???
KVM_GUESTDBG_EXIT_PENDING = 386:amd64:arm64:mips64le:ppc64le:riscv64:???, s390x:268435456
KVM_GUESTDBG_INJECT_BP = 524288, arm64:mips64le:ppc64le:s390x:riscv64:???
KVM_GUESTDBG_INJECT_DB = 262144, arm64:mips64le:ppc64le:s390x:riscv64:???
KVM_GUESTDBG_SINGLESTEP = 2
KVM_GUESTDBG_USE_HW = 386:amd64:mips64le:ppc64le:s390x:???, arm64:131072
KVM_GUESTDBG_USE_HW_BP = 131072, arm64:mips64le:???, s390x:65536
KVM_GUESTDBG_USE_SW_BP = 65536, mips64le:s390x:???
KVM_GUESTDBG_USE_HW = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:131072
KVM_GUESTDBG_USE_HW_BP = 131072, arm64:mips64le:riscv64:???, s390x:65536
KVM_GUESTDBG_USE_SW_BP = 65536, mips64le:s390x:riscv64:???
KVM_HAS_DEVICE_ATTR = 1075359459, mips64le:ppc64le:2149101283
KVM_INTERRUPT = 1074048646, mips64le:ppc64le:2147790470
KVM_IOEVENTFD = 1077980793, mips64le:ppc64le:2151722617
Expand Down Expand Up @@ -118,19 +118,19 @@ KVM_MP_STATE_SIPI_RECEIVED = 4
KVM_MP_STATE_STOPPED = 5
KVM_MP_STATE_UNINITIALIZED = 1
KVM_MSI_VALID_DEVID = 1
KVM_PMU_EVENT_ALLOW = 0, mips64le:ppc64le:s390x:???
KVM_PMU_EVENT_DENY = 1, mips64le:ppc64le:s390x:???
KVM_PMU_EVENT_ALLOW = 0, mips64le:ppc64le:s390x:riscv64:???
KVM_PMU_EVENT_DENY = 1, mips64le:ppc64le:s390x:riscv64:???
KVM_PPC_ALLOCATE_HTAB = 3221532327
KVM_PPC_GET_PVINFO = 386:amd64:arm64:mips64le:s390x:???, ppc64le:2155916961
KVM_PPC_GET_SMMU_INFO = 386:amd64:arm64:mips64le:s390x:???, ppc64le:1112583846
KVM_PPC_GET_PVINFO = 386:amd64:arm64:mips64le:s390x:riscv64:???, ppc64le:2155916961
KVM_PPC_GET_SMMU_INFO = 386:amd64:arm64:mips64le:s390x:riscv64:???, ppc64le:1112583846
KVM_PRE_FAULT_MEMORY = 3225464533
KVM_REGISTER_COALESCED_MMIO = 1074835047, mips64le:ppc64le:2148576871
KVM_RESET_DIRTY_RINGS = 44743, mips64le:ppc64le:536915655
KVM_RUN = 44672, mips64le:ppc64le:536915584
KVM_RUN_SIZE = 2352, s390x:2368
KVM_S390_INTERRUPT = 386:amd64:arm64:mips64le:ppc64le:???, s390x:1074835092
KVM_S390_UCAS_MAP = 386:amd64:arm64:mips64le:ppc64le:???, s390x:1075359312
KVM_S390_UCAS_UNMAP = 386:amd64:arm64:mips64le:ppc64le:???, s390x:1075359313
KVM_S390_INTERRUPT = 386:amd64:arm64:mips64le:ppc64le:riscv64:???, s390x:1074835092
KVM_S390_UCAS_MAP = 386:amd64:arm64:mips64le:ppc64le:riscv64:???, s390x:1075359312
KVM_S390_UCAS_UNMAP = 386:amd64:arm64:mips64le:ppc64le:riscv64:???, s390x:1075359313
KVM_S390_VCPU_FAULT = 1074310738, 386:1074048594, mips64le:ppc64le:2148052562
KVM_SETUP_PPC64_DR = 4
KVM_SETUP_PPC64_IR = 2
Expand All @@ -141,25 +141,25 @@ KVM_SET_DEVICE_ATTR = 1075359457, mips64le:ppc64le:2149101281
KVM_SET_GSI_ROUTING = 1074310762, mips64le:ppc64le:2148052586
KVM_SET_MP_STATE = 1074048665, mips64le:ppc64le:2147790489
KVM_SET_ONE_REG = 1074835116, mips64le:ppc64le:2148576940
KVM_SET_REGS = 1083223682, arm64:1130409602, mips64le:2165878402, ppc64le:2173218434, s390x:1082175106
KVM_SET_REGS = 1083223682, arm64:1130409602, mips64le:2165878402, ppc64le:2173218434, s390x:1082175106, riscv64:1073786498
KVM_SET_SIGNAL_MASK = 1074048651, mips64le:ppc64le:2147790475
KVM_SET_SREGS = 1094233732, arm64:1073786500, mips64le:2147528324, ppc64le:2228268676, s390x:1086369412
KVM_SET_SREGS = 1094233732, arm64:riscv64:1073786500, mips64le:2147528324, ppc64le:2228268676, s390x:1086369412
KVM_SET_USER_MEMORY_REGION = 1075883590, mips64le:ppc64le:2149625414
KVM_SET_USER_MEMORY_REGION2 = 1084272201, mips64le:ppc64le:2158014025
KVM_SET_VCPU_EVENTS = 1077980832, mips64le:ppc64le:s390x:???
KVM_SET_VCPU_EVENTS = 1077980832, mips64le:ppc64le:s390x:riscv64:???
KVM_SIGNAL_MSI = 1075883685, mips64le:ppc64le:2149625509
KVM_SMCCC_FILTER_DENY = 386:amd64:mips64le:ppc64le:s390x:???, arm64:1
KVM_SMCCC_FILTER_FWD_TO_USER = 386:amd64:mips64le:ppc64le:s390x:???, arm64:2
KVM_SMCCC_FILTER_HANDLE = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
KVM_SMCCC_FILTER_DENY = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:1
KVM_SMCCC_FILTER_FWD_TO_USER = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:2
KVM_SMCCC_FILTER_HANDLE = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:0
KVM_UNREGISTER_COALESCED_MMIO = 1074835048, mips64le:ppc64le:2148576872
KVM_VGIC_ITS_ADDR_TYPE = 386:amd64:mips64le:ppc64le:s390x:???, arm64:4
KVM_VGIC_V2_ADDR_TYPE_CPU = 386:amd64:mips64le:ppc64le:s390x:???, arm64:1
KVM_VGIC_V2_ADDR_TYPE_DIST = 386:amd64:mips64le:ppc64le:s390x:???, arm64:0
KVM_VGIC_V3_ADDR_TYPE_DIST = 386:amd64:mips64le:ppc64le:s390x:???, arm64:2
KVM_VGIC_V3_ADDR_TYPE_REDIST = 386:amd64:mips64le:ppc64le:s390x:???, arm64:3
KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION = 386:amd64:mips64le:ppc64le:s390x:???, arm64:5
KVM_VGIC_ITS_ADDR_TYPE = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:4
KVM_VGIC_V2_ADDR_TYPE_CPU = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:1
KVM_VGIC_V2_ADDR_TYPE_DIST = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:0
KVM_VGIC_V3_ADDR_TYPE_DIST = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:2
KVM_VGIC_V3_ADDR_TYPE_REDIST = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:3
KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION = 386:amd64:mips64le:ppc64le:s390x:riscv64:???, arm64:5
VMCS12_SIZE = 4096
__NR_ioctl = 54, amd64:16, arm64:29, mips64le:5015
__NR_mmap = 90, 386:192, amd64:9, arm64:222, mips64le:5009
__NR_mmap2 = 386:192, amd64:arm64:mips64le:ppc64le:s390x:???
__NR_openat = 386:295, amd64:257, arm64:56, mips64le:5247, ppc64le:286, s390x:288
__NR_ioctl = 54, amd64:16, arm64:riscv64:29, mips64le:5015
__NR_mmap = 90, 386:192, amd64:9, arm64:riscv64:222, mips64le:5009
__NR_mmap2 = 386:192, amd64:arm64:mips64le:ppc64le:s390x:riscv64:???
__NR_openat = 386:295, amd64:257, arm64:riscv64:56, mips64le:5247, ppc64le:286, s390x:288
14 changes: 14 additions & 0 deletions sys/linux/dev_kvm_riscv64.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Copyright 2026 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

# RISCV64-specific KVM syscall declarations.

meta arches["riscv64"]

include <uapi/linux/kvm.h>

ioctl$KVM_SET_GUEST_DEBUG_riscv64(fd fd_kvmcpu, cmd const[KVM_SET_GUEST_DEBUG], arg ptr[in, kvm_guest_debug[kvm_guest_debug_arch_riscv64]])

kvm_guest_debug_arch_riscv64 {
reg array[int64, 8]
}
4 changes: 4 additions & 0 deletions sys/linux/dev_kvm_riscv64.txt.const
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Code generated by syz-sysgen. DO NOT EDIT.
arches = riscv64
KVM_SET_GUEST_DEBUG = riscv64:1074310811
__NR_ioctl = riscv64:29
Loading