aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-12-22 19:34:12 +0100
committerDmitry Vyukov <dvyukov@google.com>2019-12-22 19:34:12 +0100
commit61f4e7ee54a1a1ae938c8ab2ee18bf16da1abab4 (patch)
tree9d6a6d895a2f54481ae996074efcbc1e90d46405
parent8b96726707a5846209f943c978ccd7eeb1dd6f5e (diff)
tools/syz-check: check amd64 and 386 at the same time
Update #590
-rw-r--r--sys/linux/9p.txt.warn16
-rw-r--r--sys/linux/binfmt.txt.warn5
-rw-r--r--sys/linux/bpf.txt.warn183
-rw-r--r--sys/linux/dev_binder.txt.warn95
-rw-r--r--sys/linux/dev_block.txt.warn4
-rw-r--r--sys/linux/dev_cdrom.txt.warn4
-rw-r--r--sys/linux/dev_dri.txt.warn50
-rw-r--r--sys/linux/dev_hidraw.txt.warn2
-rw-r--r--sys/linux/dev_i2c.txt.warn2
-rw-r--r--sys/linux/dev_infiniband_rdma.txt.warn242
-rw-r--r--sys/linux/dev_infiniband_rdma_cm.txt.warn30
-rw-r--r--sys/linux/dev_input.txt.warn23
-rw-r--r--sys/linux/dev_kvm.txt.warn122
-rw-r--r--sys/linux/dev_loop.txt.warn4
-rw-r--r--sys/linux/dev_nbd.txt.warn2
-rw-r--r--sys/linux/dev_ptmx.txt.warn30
-rw-r--r--sys/linux/dev_rtc.txt.warn2
-rw-r--r--sys/linux/dev_sg.txt.warn75
-rw-r--r--sys/linux/dev_snd_control.txt.warn14
-rw-r--r--sys/linux/dev_snd_midi.txt.warn5
-rw-r--r--sys/linux/dev_snd_pcm.txt.warn81
-rw-r--r--sys/linux/dev_snd_seq.txt.warn27
-rw-r--r--sys/linux/dev_tlk_device.txt.warn22
-rw-r--r--sys/linux/dev_uhid.txt.warn2
-rw-r--r--sys/linux/dev_usbmon.txt.warn2
-rw-r--r--sys/linux/dev_vfio.txt.warn1
-rw-r--r--sys/linux/dev_video4linux.txt.warn47
-rw-r--r--sys/linux/devio.txt.warn27
-rw-r--r--sys/linux/filesystem.txt.warn12
-rw-r--r--sys/linux/fs_ext4.txt.warn7
-rw-r--r--sys/linux/fs_ioctl.txt.warn6
-rw-r--r--sys/linux/fscrypt.txt.warn30
-rw-r--r--sys/linux/fuse.txt.warn6
-rw-r--r--sys/linux/hafnium.txt.warn2
-rw-r--r--sys/linux/ipc.txt.warn52
-rw-r--r--sys/linux/ipvs.txt.warn2
-rw-r--r--sys/linux/key.txt.warn6
-rw-r--r--sys/linux/mptcp.txt.warn8
-rw-r--r--sys/linux/netfilter.txt.warn145
-rw-r--r--sys/linux/netfilter_arp.txt.warn14
-rw-r--r--sys/linux/netfilter_bridge.txt.warn74
-rw-r--r--sys/linux/netfilter_ipv4.txt.warn8
-rw-r--r--sys/linux/netfilter_ipv6.txt.warn6
-rw-r--r--sys/linux/netfilter_targets.txt.warn41
-rw-r--r--sys/linux/perf.txt.warn114
-rw-r--r--sys/linux/prctl.txt.warn1
-rw-r--r--sys/linux/smack.txt.warn6
-rw-r--r--sys/linux/socket.txt.warn75
-rw-r--r--sys/linux/socket_alg.txt.warn16
-rw-r--r--sys/linux/socket_ax25.txt.warn18
-rw-r--r--sys/linux/socket_bluetooth.txt.warn4
-rw-r--r--sys/linux/socket_caif.txt.warn16
-rw-r--r--sys/linux/socket_can.txt.warn19
-rw-r--r--sys/linux/socket_inet.txt.warn20
-rw-r--r--sys/linux/socket_inet6.txt.warn15
-rw-r--r--sys/linux/socket_inet_sctp.txt.warn26
-rw-r--r--sys/linux/socket_inet_tcp.txt.warn17
-rw-r--r--sys/linux/socket_ipx.txt.warn4
-rw-r--r--sys/linux/socket_isdn.txt.warn2
-rw-r--r--sys/linux/socket_key.txt.warn16
-rw-r--r--sys/linux/socket_llc.txt.warn2
-rw-r--r--sys/linux/socket_netlink.txt.warn25
-rw-r--r--sys/linux/socket_netlink_generic.txt.warn2
-rw-r--r--sys/linux/socket_netlink_generic_devlink.txt.warn6
-rw-r--r--sys/linux/socket_netlink_generic_team.txt.warn6
-rw-r--r--sys/linux/socket_netlink_netfilter.txt.warn4
-rw-r--r--sys/linux/socket_netlink_route.txt.warn9
-rw-r--r--sys/linux/socket_netlink_route_sched.txt.warn83
-rw-r--r--sys/linux/socket_netlink_xfrm.txt.warn20
-rw-r--r--sys/linux/socket_netrom.txt.warn2
-rw-r--r--sys/linux/socket_nfc.txt.warn2
-rw-r--r--sys/linux/socket_packet.txt.warn8
-rw-r--r--sys/linux/socket_pppox.txt.warn10
-rw-r--r--sys/linux/socket_rds.txt.warn18
-rw-r--r--sys/linux/socket_rose.txt.warn6
-rw-r--r--sys/linux/socket_rxrpc.txt.warn10
-rw-r--r--sys/linux/socket_tipc.txt.warn20
-rw-r--r--sys/linux/socket_tipc_netlink.txt.warn4
-rw-r--r--sys/linux/socket_unix.txt.warn16
-rw-r--r--sys/linux/socket_vnet.txt.warn11
-rw-r--r--sys/linux/socket_x25.txt.warn4
-rw-r--r--sys/linux/socket_xdp.txt.warn5
-rw-r--r--sys/linux/sys.txt.warn120
-rw-r--r--sys/linux/trusty.txt.warn36
-rw-r--r--sys/linux/uffd.txt.warn7
-rw-r--r--sys/linux/vnet.txt.warn126
-rw-r--r--sys/linux/vusb.txt.warn86
-rw-r--r--sys/linux/xattr.txt.warn10
-rw-r--r--tools/syz-check/check.go115
-rw-r--r--tools/syz-check/dwarf.go5
90 files changed, 1516 insertions, 1169 deletions
diff --git a/sys/linux/9p.txt.warn b/sys/linux/9p.txt.warn
index 04d69d556..6b905881c 100644
--- a/sys/linux/9p.txt.warn
+++ b/sys/linux/9p.txt.warn
@@ -1,8 +1,8 @@
-struct pipe_9p: no corresponding struct in kernel
-struct p9_msg: no corresponding struct in kernel
-struct p9_qid: bad size: syz=13 kernel=16
-field p9_qid.version: bad offset: syz=1 kernel=4
-field p9_qid.path: bad offset: syz=5 kernel=8
-struct p9_ropen: no corresponding struct in kernel
-struct p9_rstatfs: bad size: syz=60 kernel=64
-struct p9_rgetattr: no corresponding struct in kernel
+no-such-struct: pipe_9p
+no-such-struct: p9_msg
+bad-struct-size: p9_qid: syz=13 kernel=16
+bad-field-offset: p9_qid.version: syz=1 kernel=4
+bad-field-offset: p9_qid.path: syz=5 kernel=8
+no-such-struct: p9_ropen
+bad-struct-size: p9_rstatfs: syz=60 kernel=64 [amd64]
+no-such-struct: p9_rgetattr
diff --git a/sys/linux/binfmt.txt.warn b/sys/linux/binfmt.txt.warn
index 41d004b50..ea2ebbe60 100644
--- a/sys/linux/binfmt.txt.warn
+++ b/sys/linux/binfmt.txt.warn
@@ -1,2 +1,3 @@
-struct exec: no corresponding struct in kernel
-struct elf_hdr: no corresponding struct in kernel
+no-such-struct: exec
+no-such-struct: elf_hdr
+no-such-struct: elf64_phdr [386]
diff --git a/sys/linux/bpf.txt.warn b/sys/linux/bpf.txt.warn
index f380144a0..3bb35f85d 100644
--- a/sys/linux/bpf.txt.warn
+++ b/sys/linux/bpf.txt.warn
@@ -1,88 +1,95 @@
-struct bpf_map_create_arg: no corresponding struct in kernel
-struct bpf_map_get_fd_by_id_arg: no corresponding struct in kernel
-struct bpf_map_lookup_arg: no corresponding struct in kernel
-struct bpf_map_update_arg: no corresponding struct in kernel
-struct bpf_map_delete_arg: no corresponding struct in kernel
-struct bpf_map_get_next_arg: no corresponding struct in kernel
-struct bpf_prog: bad number of fields: syz=21 kernel=20
-struct bpf_prog: bad size: syz=120 kernel=56
-field bpf_prog.type/pages: bad size: syz=4 kernel=2
-field bpf_prog.ninsn/jited: bad bit size/offset: syz=0/0 kernel=1/0
-field bpf_prog.ninsn/jited: bad offset: syz=4 kernel=2
-field bpf_prog.ninsn/jited: bad size: syz=4 kernel=2
-field bpf_prog.insns/jit_requested: bad bit size/offset: syz=0/0 kernel=1/1
-field bpf_prog.insns/jit_requested: bad offset: syz=8 kernel=2
-field bpf_prog.insns/jit_requested: bad size: syz=8 kernel=2
-field bpf_prog.license/gpl_compatible: bad bit size/offset: syz=0/0 kernel=1/2
-field bpf_prog.license/gpl_compatible: bad offset: syz=16 kernel=2
-field bpf_prog.license/gpl_compatible: bad size: syz=8 kernel=2
-field bpf_prog.loglev/cb_access: bad bit size/offset: syz=0/0 kernel=1/3
-field bpf_prog.loglev/cb_access: bad offset: syz=24 kernel=2
-field bpf_prog.loglev/cb_access: bad size: syz=4 kernel=2
-field bpf_prog.logsize/dst_needed: bad bit size/offset: syz=0/0 kernel=1/4
-field bpf_prog.logsize/dst_needed: bad offset: syz=28 kernel=2
-field bpf_prog.logsize/dst_needed: bad size: syz=4 kernel=2
-field bpf_prog.log/blinded: bad bit size/offset: syz=0/0 kernel=1/5
-field bpf_prog.log/blinded: bad offset: syz=32 kernel=2
-field bpf_prog.log/blinded: bad size: syz=8 kernel=2
-field bpf_prog.kern_version/is_func: bad bit size/offset: syz=0/0 kernel=1/6
-field bpf_prog.kern_version/is_func: bad offset: syz=40 kernel=2
-field bpf_prog.kern_version/is_func: bad size: syz=4 kernel=2
-field bpf_prog.flags/kprobe_override: bad bit size/offset: syz=0/0 kernel=1/7
-field bpf_prog.flags/kprobe_override: bad offset: syz=44 kernel=2
-field bpf_prog.flags/kprobe_override: bad size: syz=4 kernel=2
-field bpf_prog.prog_name/has_callchain_buf: bad bit size/offset: syz=0/0 kernel=1/8
-field bpf_prog.prog_name/has_callchain_buf: bad offset: syz=48 kernel=2
-field bpf_prog.prog_name/has_callchain_buf: bad size: syz=16 kernel=2
-field bpf_prog.prog_ifindex/enforce_expected_attach_type: bad bit size/offset: syz=0/0 kernel=1/9
-field bpf_prog.prog_ifindex/enforce_expected_attach_type: bad offset: syz=64 kernel=2
-field bpf_prog.prog_ifindex/enforce_expected_attach_type: bad size: syz=4 kernel=2
-field bpf_prog.expected_attach_type/type: bad offset: syz=68 kernel=4
-field bpf_prog.btf_fd/expected_attach_type: bad offset: syz=72 kernel=8
-field bpf_prog.func_info_rec_size/len: bad offset: syz=76 kernel=12
-field bpf_prog.func_info/jited_len: bad offset: syz=80 kernel=16
-field bpf_prog.func_info/jited_len: bad size: syz=8 kernel=4
-field bpf_prog.func_info_cnt/tag: bad offset: syz=88 kernel=20
-field bpf_prog.func_info_cnt/tag: bad size: syz=4 kernel=8
-field bpf_prog.line_info_rec_size/aux: bad offset: syz=92 kernel=32
-field bpf_prog.line_info_rec_size/aux: bad size: syz=4 kernel=8
-field bpf_prog.line_info/orig_prog: bad offset: syz=96 kernel=40
-field bpf_prog.line_info_cnt/bpf_func: bad offset: syz=104 kernel=48
-field bpf_prog.line_info_cnt/bpf_func: bad size: syz=4 kernel=8
-field bpf_prog.attach_btf_id/: bad offset: syz=108 kernel=56
-field bpf_prog.attach_btf_id/: bad size: syz=4 kernel=0
-struct bpf_insn_generic: no corresponding struct in kernel
-struct bpf_insn_ldst: no corresponding struct in kernel
-struct bpf_insn_alu: no corresponding struct in kernel
-struct bpf_insn_jmp: no corresponding struct in kernel
-struct bpf_insn_call_helper: no corresponding struct in kernel
-struct bpf_insn_call_func: no corresponding struct in kernel
-struct bpf_insn_exit: no corresponding struct in kernel
-struct bpf_insn_init_r0: no corresponding struct in kernel
-struct bpf_insn_map: no corresponding struct in kernel
-struct bpf_insn_map_value: no corresponding struct in kernel
-struct bpf_obj_pin_map: no corresponding struct in kernel
-struct bpf_obj_pin_prog: no corresponding struct in kernel
-struct bpf_obj_get: no corresponding struct in kernel
-struct bpf_attach_arg: no corresponding struct in kernel
-struct bpf_detach_arg: no corresponding struct in kernel
-struct bpf_test_prog_arg: no corresponding struct in kernel
-struct bpf_obj_get_next_id_arg: no corresponding struct in kernel
-struct bpf_prog_get_fd_by_id_arg: no corresponding struct in kernel
-struct bpf_get_prog_info_arg: no corresponding struct in kernel
-struct bpf_prog_info: bad number of fields: syz=32 kernel=34
-struct bpf_prog_info: bad size: syz=192 kernel=208
-struct bpf_get_map_info_arg: no corresponding struct in kernel
-struct bpf_map_info: bad number of fields: syz=7 kernel=13
-struct bpf_map_info: bad size: syz=40 kernel=80
-struct bpf_get_btf_info_arg: no corresponding struct in kernel
-struct bpf_prog_query: no corresponding struct in kernel
-field bpf_raw_tracepoint.prog_fd/prog: bad size: syz=4 kernel=8
-struct bpf_btf_load: no corresponding struct in kernel
-struct btf_type_int: no corresponding struct in kernel
-struct btf_type_ref_t: no corresponding struct in kernel
-struct btf_type_array: no corresponding struct in kernel
-struct btf_type_fwd: no corresponding struct in kernel
-struct btf_type_func: no corresponding struct in kernel
-struct btf_type_var: no corresponding struct in kernel
-struct bpf_task_fd_query: no corresponding struct in kernel
+no-such-struct: bpf_map_create_arg
+no-such-struct: bpf_map_get_fd_by_id_arg
+no-such-struct: bpf_map_lookup_arg
+no-such-struct: bpf_map_update_arg
+no-such-struct: bpf_map_delete_arg
+no-such-struct: bpf_map_get_next_arg
+bad-struct-size: bpf_prog: syz=120 kernel=40 [386]
+bad-struct-size: bpf_prog: syz=120 kernel=56 [amd64]
+bad-field-number: bpf_prog: syz=21 kernel=20
+bad-field-size: bpf_prog.type/pages: syz=4 kernel=2
+bad-bitfield: bpf_prog.ninsn/jited: size/offset: syz=0/0 kernel=1/0
+bad-field-offset: bpf_prog.ninsn/jited: syz=4 kernel=2
+bad-bitfield: bpf_prog.insns/jit_requested: size/offset: syz=0/0 kernel=1/1
+bad-field-size: bpf_prog.insns/jit_requested: syz=8 kernel=2
+bad-bitfield: bpf_prog.license/gpl_compatible: size/offset: syz=0/0 kernel=1/2
+bad-field-offset: bpf_prog.license/gpl_compatible: syz=16 kernel=2
+bad-field-size: bpf_prog.license/gpl_compatible: syz=8 kernel=2
+bad-bitfield: bpf_prog.loglev/cb_access: size/offset: syz=0/0 kernel=1/3
+bad-field-offset: bpf_prog.loglev/cb_access: syz=24 kernel=2
+bad-field-size: bpf_prog.loglev/cb_access: syz=4 kernel=2
+bad-bitfield: bpf_prog.logsize/dst_needed: size/offset: syz=0/0 kernel=1/4
+bad-field-offset: bpf_prog.logsize/dst_needed: syz=28 kernel=2
+bad-field-size: bpf_prog.logsize/dst_needed: syz=4 kernel=2
+bad-bitfield: bpf_prog.log/blinded: size/offset: syz=0/0 kernel=1/5
+bad-field-offset: bpf_prog.log/blinded: syz=32 kernel=2
+bad-field-size: bpf_prog.log/blinded: syz=8 kernel=2
+bad-bitfield: bpf_prog.kern_version/is_func: size/offset: syz=0/0 kernel=1/6
+bad-field-size: bpf_prog.kern_version/is_func: syz=4 kernel=2
+bad-field-offset: bpf_prog.kern_version/is_func: syz=40 kernel=2
+bad-bitfield: bpf_prog.flags/kprobe_override: size/offset: syz=0/0 kernel=1/7
+bad-field-size: bpf_prog.flags/kprobe_override: syz=4 kernel=2
+bad-field-offset: bpf_prog.flags/kprobe_override: syz=44 kernel=2
+bad-bitfield: bpf_prog.prog_name/has_callchain_buf: size/offset: syz=0/0 kernel=1/8
+bad-field-size: bpf_prog.prog_name/has_callchain_buf: syz=16 kernel=2
+bad-field-offset: bpf_prog.prog_name/has_callchain_buf: syz=48 kernel=2
+bad-bitfield: bpf_prog.prog_ifindex/enforce_expected_attach_type: size/offset: syz=0/0 kernel=1/9
+bad-field-size: bpf_prog.prog_ifindex/enforce_expected_attach_type: syz=4 kernel=2
+bad-field-offset: bpf_prog.prog_ifindex/enforce_expected_attach_type: syz=64 kernel=2
+bad-field-offset: bpf_prog.expected_attach_type/type: syz=68 kernel=4
+bad-field-offset: bpf_prog.btf_fd/expected_attach_type: syz=72 kernel=8
+bad-field-offset: bpf_prog.func_info_rec_size/len: syz=76 kernel=12
+bad-field-size: bpf_prog.func_info/jited_len: syz=8 kernel=4
+bad-field-offset: bpf_prog.func_info/jited_len: syz=80 kernel=16
+bad-field-size: bpf_prog.func_info_cnt/tag: syz=4 kernel=8
+bad-field-offset: bpf_prog.func_info_cnt/tag: syz=88 kernel=20
+bad-field-size: bpf_prog.line_info_rec_size/aux: syz=4 kernel=8 [amd64]
+bad-field-offset: bpf_prog.line_info_rec_size/aux: syz=92 kernel=28 [386]
+bad-field-offset: bpf_prog.line_info_rec_size/aux: syz=92 kernel=32 [amd64]
+bad-field-size: bpf_prog.line_info/orig_prog: syz=8 kernel=4 [386]
+bad-field-offset: bpf_prog.line_info/orig_prog: syz=96 kernel=32 [386]
+bad-field-offset: bpf_prog.line_info/orig_prog: syz=96 kernel=40 [amd64]
+bad-field-offset: bpf_prog.line_info_cnt/bpf_func: syz=104 kernel=36 [386]
+bad-field-offset: bpf_prog.line_info_cnt/bpf_func: syz=104 kernel=48 [amd64]
+bad-field-size: bpf_prog.line_info_cnt/bpf_func: syz=4 kernel=8 [amd64]
+bad-field-offset: bpf_prog.attach_btf_id/: syz=108 kernel=40 [386]
+bad-field-offset: bpf_prog.attach_btf_id/: syz=108 kernel=56 [amd64]
+bad-field-size: bpf_prog.attach_btf_id/: syz=4 kernel=0
+no-such-struct: bpf_insn_generic
+no-such-struct: bpf_insn_ldst
+no-such-struct: bpf_insn_alu
+no-such-struct: bpf_insn_jmp
+no-such-struct: bpf_insn_call_helper
+no-such-struct: bpf_insn_call_func
+no-such-struct: bpf_insn_exit
+no-such-struct: bpf_insn_init_r0
+no-such-struct: bpf_insn_map
+no-such-struct: bpf_insn_map_value
+no-such-struct: bpf_obj_pin_map
+no-such-struct: bpf_obj_pin_prog
+no-such-struct: bpf_obj_get
+no-such-struct: bpf_attach_arg
+no-such-struct: bpf_detach_arg
+no-such-struct: bpf_test_prog_arg
+no-such-struct: bpf_obj_get_next_id_arg
+no-such-struct: bpf_prog_get_fd_by_id_arg
+no-such-struct: bpf_get_prog_info_arg
+bad-struct-size: bpf_prog_info: syz=192 kernel=208
+bad-field-number: bpf_prog_info: syz=32 kernel=34
+no-such-struct: bpf_get_map_info_arg
+bad-struct-size: bpf_map_info: syz=40 kernel=80
+bad-field-number: bpf_map_info: syz=7 kernel=13
+no-such-struct: bpf_get_btf_info_arg
+no-such-struct: bpf_prog_query
+bad-struct-size: bpf_raw_tracepoint: syz=16 kernel=8 [386]
+bad-field-size: bpf_raw_tracepoint.name/btp: syz=8 kernel=4 [386]
+bad-field-size: bpf_raw_tracepoint.prog_fd/prog: syz=4 kernel=8 [amd64]
+bad-field-offset: bpf_raw_tracepoint.prog_fd/prog: syz=8 kernel=4 [386]
+no-such-struct: bpf_btf_load
+no-such-struct: btf_type_int
+no-such-struct: btf_type_ref_t
+no-such-struct: btf_type_array
+no-such-struct: btf_type_fwd
+no-such-struct: btf_type_func
+no-such-struct: btf_type_var
+no-such-struct: bpf_task_fd_query
diff --git a/sys/linux/dev_binder.txt.warn b/sys/linux/dev_binder.txt.warn
index c09809c52..77e045c34 100644
--- a/sys/linux/dev_binder.txt.warn
+++ b/sys/linux/dev_binder.txt.warn
@@ -1,49 +1,46 @@
-struct binder_cmd_transaction: no corresponding struct in kernel
-struct binder_cmd_reply: no corresponding struct in kernel
-struct binder_cmd_transaction_sg: no corresponding struct in kernel
-struct binder_cmd_reply_sg: no corresponding struct in kernel
-struct binder_transaction_data: bad number of fields: syz=11 kernel=9
-field binder_transaction_data.handle/target: bad size: syz=4 kernel=8
-field binder_transaction_data.pad/cookie: bad offset: syz=4 kernel=8
-field binder_transaction_data.pad/cookie: bad size: syz=4 kernel=8
-field binder_transaction_data.cookie/code: bad offset: syz=8 kernel=16
-field binder_transaction_data.cookie/code: bad size: syz=8 kernel=4
-field binder_transaction_data.code/flags: bad offset: syz=16 kernel=20
-field binder_transaction_data.flags/sender_pid: bad offset: syz=20 kernel=24
-field binder_transaction_data.sender_pid/sender_euid: bad offset: syz=24 kernel=28
-field binder_transaction_data.sender_euid/data_size: bad offset: syz=28 kernel=32
-field binder_transaction_data.sender_euid/data_size: bad size: syz=4 kernel=8
-field binder_transaction_data.data_size/offsets_size: bad offset: syz=32 kernel=40
-field binder_transaction_data.offsets_size/data: bad offset: syz=40 kernel=48
-field binder_transaction_data.offsets_size/data: bad size: syz=8 kernel=16
-struct binder_offsets: no corresponding struct in kernel
-field flat_binder_object.binder/hdr: bad size: syz=24 kernel=4
-field flat_binder_object.weak_binder/flags: bad offset: syz=24 kernel=4
-field flat_binder_object.weak_binder/flags: bad size: syz=24 kernel=4
-field flat_binder_object.handle/: bad offset: syz=48 kernel=8
-field flat_binder_object.handle/: bad size: syz=24 kernel=8
-field flat_binder_object.weak_handle/cookie: bad offset: syz=72 kernel=16
-field flat_binder_object.weak_handle/cookie: bad size: syz=24 kernel=8
-struct flat_binder_object_t: no corresponding struct in kernel
-struct binder_fd_object: bad number of fields: syz=5 kernel=4
-field binder_fd_object.fd/: bad size: syz=4 kernel=8
-field binder_fd_object.pad2/cookie: bad offset: syz=12 kernel=16
-field binder_fd_object.pad2/cookie: bad size: syz=4 kernel=8
-struct binder_fd_array_object: bad number of fields: syz=4 kernel=5
-field binder_fd_array_object.num_fds/pad: bad offset: syz=8 kernel=4
-field binder_fd_array_object.num_fds/pad: bad size: syz=8 kernel=4
-field binder_fd_array_object.parnt/num_fds: bad offset: syz=16 kernel=8
-field binder_fd_array_object.parent_offset/parent: bad offset: syz=24 kernel=16
-struct binder_cmd_free_buffer: no corresponding struct in kernel
-struct binder_cmd_increfs: no corresponding struct in kernel
-struct binder_cmd_acquire: no corresponding struct in kernel
-struct binder_cmd_release: no corresponding struct in kernel
-struct binder_cmd_decrefs: no corresponding struct in kernel
-struct binder_cmd_increfs_done: no corresponding struct in kernel
-struct binder_cmd_acquire_done: no corresponding struct in kernel
-struct binder_cmd_register_looper: no corresponding struct in kernel
-struct binder_cmd_enter_looper: no corresponding struct in kernel
-struct binder_cmd_exit_looper: no corresponding struct in kernel
-struct binder_cmd_request_death: no corresponding struct in kernel
-struct binder_cmd_clear_death: no corresponding struct in kernel
-struct binder_cmd_dead_binder_done: no corresponding struct in kernel
+no-such-struct: binder_cmd_transaction
+no-such-struct: binder_cmd_reply
+no-such-struct: binder_cmd_transaction_sg
+no-such-struct: binder_cmd_reply_sg
+bad-field-number: binder_transaction_data: syz=11 kernel=9
+bad-field-size: binder_transaction_data.handle/target: syz=4 kernel=8
+bad-field-offset: binder_transaction_data.pad/cookie: syz=4 kernel=8
+bad-field-offset: binder_transaction_data.cookie/code: syz=8 kernel=16
+bad-field-size: binder_transaction_data.cookie/code: syz=8 kernel=4
+bad-field-offset: binder_transaction_data.code/flags: syz=16 kernel=20
+bad-field-offset: binder_transaction_data.flags/sender_pid: syz=20 kernel=24
+bad-field-offset: binder_transaction_data.sender_pid/sender_euid: syz=24 kernel=28
+bad-field-offset: binder_transaction_data.sender_euid/data_size: syz=28 kernel=32
+bad-field-size: binder_transaction_data.sender_euid/data_size: syz=4 kernel=8
+bad-field-offset: binder_transaction_data.data_size/offsets_size: syz=32 kernel=40
+bad-field-offset: binder_transaction_data.offsets_size/data: syz=40 kernel=48
+bad-field-size: binder_transaction_data.offsets_size/data: syz=8 kernel=16
+no-such-struct: binder_offsets
+bad-field-size: flat_binder_object.binder/hdr: syz=24 kernel=4
+bad-field-offset: flat_binder_object.weak_binder/flags: syz=24 kernel=4
+bad-field-size: flat_binder_object.handle/: syz=24 kernel=8
+bad-field-offset: flat_binder_object.handle/: syz=48 kernel=8
+bad-field-size: flat_binder_object.weak_handle/cookie: syz=24 kernel=8
+bad-field-offset: flat_binder_object.weak_handle/cookie: syz=72 kernel=16
+no-such-struct: flat_binder_object_t
+bad-field-number: binder_fd_object: syz=5 kernel=4
+bad-field-size: binder_fd_object.fd/: syz=4 kernel=8
+bad-field-offset: binder_fd_object.pad2/cookie: syz=12 kernel=16
+bad-field-size: binder_fd_object.pad2/cookie: syz=4 kernel=8
+bad-field-number: binder_fd_array_object: syz=4 kernel=5
+bad-field-size: binder_fd_array_object.num_fds/pad: syz=8 kernel=4
+bad-field-offset: binder_fd_array_object.parnt/num_fds: syz=16 kernel=8
+bad-field-offset: binder_fd_array_object.parent_offset/parent: syz=24 kernel=16
+no-such-struct: binder_cmd_free_buffer
+no-such-struct: binder_cmd_increfs
+no-such-struct: binder_cmd_acquire
+no-such-struct: binder_cmd_release
+no-such-struct: binder_cmd_decrefs
+no-such-struct: binder_cmd_increfs_done
+no-such-struct: binder_cmd_acquire_done
+no-such-struct: binder_cmd_register_looper
+no-such-struct: binder_cmd_enter_looper
+no-such-struct: binder_cmd_exit_looper
+no-such-struct: binder_cmd_request_death
+no-such-struct: binder_cmd_clear_death
+no-such-struct: binder_cmd_dead_binder_done
diff --git a/sys/linux/dev_block.txt.warn b/sys/linux/dev_block.txt.warn
new file mode 100644
index 000000000..8f0640f5e
--- /dev/null
+++ b/sys/linux/dev_block.txt.warn
@@ -0,0 +1,4 @@
+bad-struct-size: blk_user_trace_setup: syz=72 kernel=64 [386]
+bad-field-offset: blk_user_trace_setup.start_lba: syz=48 kernel=44 [386]
+bad-field-offset: blk_user_trace_setup.end_lba: syz=56 kernel=52 [386]
+bad-field-offset: blk_user_trace_setup.pid: syz=64 kernel=60 [386]
diff --git a/sys/linux/dev_cdrom.txt.warn b/sys/linux/dev_cdrom.txt.warn
index 6aca01ee9..9e2dd67e0 100644
--- a/sys/linux/dev_cdrom.txt.warn
+++ b/sys/linux/dev_cdrom.txt.warn
@@ -1,2 +1,2 @@
-struct cdrom_msf_out_stub: no corresponding struct in kernel
-struct cdrom_addr: no corresponding struct in kernel
+no-such-struct: cdrom_msf_out_stub
+no-such-struct: cdrom_addr
diff --git a/sys/linux/dev_dri.txt.warn b/sys/linux/dev_dri.txt.warn
index 318d2e09e..5c4fd6029 100644
--- a/sys/linux/dev_dri.txt.warn
+++ b/sys/linux/dev_dri.txt.warn
@@ -1,16 +1,34 @@
-struct drm_unique_in: no corresponding struct in kernel
-struct drm_unique_out: no corresponding struct in kernel
-struct drm_map: no corresponding struct in kernel
-struct drm_ctx_priv_map: no corresponding struct in kernel
-struct drm_ctx: no corresponding struct in kernel
-struct drm_ctx_res: no corresponding struct in kernel
-struct drm_lock: no corresponding struct in kernel
-struct drm_buf_desc: no corresponding struct in kernel
-struct drm_buf_map: no corresponding struct in kernel
-struct drm_buf_pub: no corresponding struct in kernel
-struct drm_buf_free: no corresponding struct in kernel
-struct drm_dma: no corresponding struct in kernel
-struct drm_control: no corresponding struct in kernel
-struct drm_scatter_gather: no corresponding struct in kernel
-struct drm_wait_vblank: no corresponding struct in kernel
-field drm_mode_modeinfo.vrefr/vrefresh: bad size: syz=2 kernel=4
+no-such-struct: drm_unique_in
+no-such-struct: drm_unique_out
+no-such-struct: drm_map
+no-such-struct: drm_ctx_priv_map
+no-such-struct: drm_ctx
+no-such-struct: drm_ctx_res
+no-such-struct: drm_lock
+no-such-struct: drm_buf_desc
+no-such-struct: drm_buf_map
+no-such-struct: drm_buf_pub
+no-such-struct: drm_buf_free
+no-such-struct: drm_dma
+no-such-struct: drm_control
+no-such-struct: drm_scatter_gather
+no-such-struct: drm_wait_vblank
+bad-struct-size: drm_mode_card_res: syz=48 kernel=64 [386]
+bad-field-size: drm_mode_card_res.fbid/fb_id_ptr: syz=4 kernel=8 [386]
+bad-field-size: drm_mode_card_res.crtcid/crtc_id_ptr: syz=4 kernel=8 [386]
+bad-field-size: drm_mode_card_res.connid/connector_id_ptr: syz=4 kernel=8 [386]
+bad-field-offset: drm_mode_card_res.connid/connector_id_ptr: syz=8 kernel=16 [386]
+bad-field-offset: drm_mode_card_res.encid/encoder_id_ptr: syz=12 kernel=24 [386]
+bad-field-size: drm_mode_card_res.encid/encoder_id_ptr: syz=4 kernel=8 [386]
+bad-field-offset: drm_mode_card_res.nfbid/count_fbs: syz=16 kernel=32 [386]
+bad-field-offset: drm_mode_card_res.ncrtcid/count_crtcs: syz=20 kernel=36 [386]
+bad-field-offset: drm_mode_card_res.nconnid/count_connectors: syz=24 kernel=40 [386]
+bad-field-offset: drm_mode_card_res.nencid/count_encoders: syz=28 kernel=44 [386]
+bad-field-offset: drm_mode_card_res.maxw/min_width: syz=32 kernel=48 [386]
+bad-field-offset: drm_mode_card_res.maxh/max_width: syz=36 kernel=52 [386]
+bad-field-offset: drm_mode_card_res.minw/min_height: syz=40 kernel=56 [386]
+bad-field-offset: drm_mode_card_res.minh/max_height: syz=44 kernel=60 [386]
+bad-struct-size: drm_mode_get_plane_res: syz=8 kernel=12 [386]
+bad-field-size: drm_mode_get_plane_res.ids/plane_id_ptr: syz=4 kernel=8 [386]
+bad-field-offset: drm_mode_get_plane_res.cnt/count_planes: syz=4 kernel=8 [386]
+bad-field-size: drm_mode_modeinfo.vrefr/vrefresh: syz=2 kernel=4
diff --git a/sys/linux/dev_hidraw.txt.warn b/sys/linux/dev_hidraw.txt.warn
index 470518c72..bc3861f37 100644
--- a/sys/linux/dev_hidraw.txt.warn
+++ b/sys/linux/dev_hidraw.txt.warn
@@ -1 +1 @@
-struct hidraw_get_report_arg: no corresponding struct in kernel
+no-such-struct: hidraw_get_report_arg
diff --git a/sys/linux/dev_i2c.txt.warn b/sys/linux/dev_i2c.txt.warn
index 8e2a4e101..8bdf768ad 100644
--- a/sys/linux/dev_i2c.txt.warn
+++ b/sys/linux/dev_i2c.txt.warn
@@ -1 +1 @@
-struct i2c_smbus_data: no corresponding struct in kernel
+no-such-struct: i2c_smbus_data
diff --git a/sys/linux/dev_infiniband_rdma.txt.warn b/sys/linux/dev_infiniband_rdma.txt.warn
index e3de3fa21..5b9576d69 100644
--- a/sys/linux/dev_infiniband_rdma.txt.warn
+++ b/sys/linux/dev_infiniband_rdma.txt.warn
@@ -1,121 +1,121 @@
-struct mlx5_get_context_cmd_resp: no corresponding struct in kernel
-struct mlx5_get_context_cmd: no corresponding struct in kernel
-struct query_device_resp_ex: no corresponding struct in kernel
-struct query_device_cmd_ex: no corresponding struct in kernel
-struct alloc_pd_cmd_resp: no corresponding struct in kernel
-struct mlx5_alloc_pd_cmd_resp: no corresponding struct in kernel
-struct dealloc_pd_cmd: no corresponding struct in kernel
-struct create_ah_cmd_resp: no corresponding struct in kernel
-struct create_ah_cmd: no corresponding struct in kernel
-struct destroy_ah_cmd: no corresponding struct in kernel
-struct reg_mr_resp: no corresponding struct in kernel
-struct rereg_mr_resp: no corresponding struct in kernel
-struct dereg_mr_cmd: no corresponding struct in kernel
-struct alloc_mw_resp: no corresponding struct in kernel
-struct alloc_mw_cmd: no corresponding struct in kernel
-struct dealloc_mw_cmd: no corresponding struct in kernel
-struct create_comp_channel_resp: no corresponding struct in kernel
-struct create_comp_channel_cmd: no corresponding struct in kernel
-struct create_cq_resp: no corresponding struct in kernel
-struct mlx5_create_cq_cmd: no corresponding struct in kernel
-struct create_cq_ex_cmd: no corresponding struct in kernel
-struct destroy_cq_resp: no corresponding struct in kernel
-struct destroy_cq_cmd: no corresponding struct in kernel
-struct kern_wc: no corresponding struct in kernel
-struct poll_cq_cmd: no corresponding struct in kernel
-struct req_notify_cq_cmd: no corresponding struct in kernel
-struct create_qp_resp: no corresponding struct in kernel
-struct mlx5_create_qp_cmd: no corresponding struct in kernel
-struct mlx5_create_qp_resp: no corresponding struct in kernel
-struct destroy_qp_resp: no corresponding struct in kernel
-struct destroy_qp_cmd: no corresponding struct in kernel
-struct modify_qp_cmd: no corresponding struct in kernel
-struct create_wq_resp: no corresponding struct in kernel
-struct create_wq_cmd: no corresponding struct in kernel
-struct mlx5_create_wq_resp: no corresponding struct in kernel
-struct mlx5_create_wq_cmd: no corresponding struct in kernel
-struct destroy_wq_resp: no corresponding struct in kernel
-struct destroy_wq_cmd: no corresponding struct in kernel
-struct mlx5_modify_wq_cmd: no corresponding struct in kernel
-struct create_rwq_ind_table_resp: no corresponding struct in kernel
-struct create_rwq_ind_table_cmd: no corresponding struct in kernel
-struct destroy_rwq_ind_table_cmd: no corresponding struct in kernel
-struct rdma: bad number of fields: syz=3 kernel=6
-struct rdma: bad size: syz=16 kernel=256
-field rdma.remote_addr/qptype: bad size: syz=8 kernel=1
-field rdma.rkey/prtype: bad offset: syz=8 kernel=1
-field rdma.rkey/prtype: bad size: syz=4 kernel=1
-field rdma.reserved/cms: bad offset: syz=12 kernel=2
-field rdma.reserved/cms: bad size: syz=4 kernel=1
-struct atomic: no corresponding struct in kernel
-struct ud: no corresponding struct in kernel
-struct xrc: no corresponding struct in kernel
-struct wr: no corresponding struct in kernel
-struct kern_send_wr: no corresponding struct in kernel
-struct post_send_resp: no corresponding struct in kernel
-struct post_recv_resp: no corresponding struct in kernel
-struct create_srq_resp: no corresponding struct in kernel
-struct mlx5_ib_create_srq_resp: no corresponding struct in kernel
-struct mlx5_create_srq_cmd: no corresponding struct in kernel
-struct query_srq_resp: no corresponding struct in kernel
-struct destroy_srq_resp: no corresponding struct in kernel
-struct destroy_srq_cmd: no corresponding struct in kernel
-struct kern_recv_wr: no corresponding struct in kernel
-struct post_srq_recv_resp: no corresponding struct in kernel
-struct open_xrcd_resp: no corresponding struct in kernel
-struct close_xrcd_cmd: no corresponding struct in kernel
-struct ib_flow_eth_filter: bad number of fields: syz=4 kernel=5
-struct ib_flow_spec_eth: bad number of fields: syz=5 kernel=4
-field ib_flow_spec_eth.reserved/val: bad size: syz=2 kernel=16
-field ib_flow_spec_eth.val/mask: bad offset: syz=8 kernel=22
-struct ib_flow_ipv4_filter: bad number of fields: syz=6 kernel=7
-struct ib_flow_spec_ipv4: bad number of fields: syz=5 kernel=4
-field ib_flow_spec_ipv4.reserved/val: bad offset: syz=6 kernel=8
-field ib_flow_spec_ipv4.reserved/val: bad size: syz=2 kernel=12
-field ib_flow_spec_ipv4.val/mask: bad offset: syz=8 kernel=20
-field ib_flow_ipv6_filter.reserved/real_sz: bad size: syz=1 kernel=0
-struct ib_flow_spec_ipv6: bad number of fields: syz=5 kernel=4
-field ib_flow_spec_ipv6.reserved/val: bad offset: syz=6 kernel=8
-field ib_flow_spec_ipv6.reserved/val: bad size: syz=2 kernel=40
-field ib_flow_spec_ipv6.val/mask: bad offset: syz=8 kernel=48
-struct ib_flow_tcp_udp_filter: bad number of fields: syz=2 kernel=3
-struct ib_flow_spec_tcp_udp: bad number of fields: syz=5 kernel=4
-field ib_flow_spec_tcp_udp.reserved/val: bad size: syz=2 kernel=4
-field ib_flow_spec_tcp_udp.val/mask: bad offset: syz=8 kernel=10
-struct ib_flow_esp_filter: bad number of fields: syz=2 kernel=3
-struct ib_flow_spec_esp: bad number of fields: syz=5 kernel=4
-field ib_flow_spec_esp.reserved/val: bad offset: syz=6 kernel=8
-field ib_flow_spec_esp.reserved/val: bad size: syz=2 kernel=8
-field ib_flow_spec_esp.val/mask: bad offset: syz=8 kernel=16
-struct ib_flow_tunnel_filter: bad number of fields: syz=1 kernel=2
-struct ib_flow_spec_tunnel: bad number of fields: syz=5 kernel=4
-field ib_flow_spec_tunnel.reserved/val: bad offset: syz=6 kernel=8
-field ib_flow_spec_tunnel.reserved/val: bad size: syz=2 kernel=4
-field ib_flow_spec_tunnel.val/mask: bad offset: syz=8 kernel=12
-struct ib_flow_gre_filter: bad number of fields: syz=3 kernel=4
-struct ib_flow_spec_gre: bad number of fields: syz=5 kernel=4
-field ib_flow_spec_gre.reserved/val: bad offset: syz=6 kernel=8
-field ib_flow_spec_gre.reserved/val: bad size: syz=2 kernel=8
-field ib_flow_spec_gre.val/mask: bad offset: syz=8 kernel=16
-struct ib_flow_mpls_filter: bad number of fields: syz=1 kernel=2
-struct ib_flow_spec_mpls: bad number of fields: syz=5 kernel=4
-field ib_flow_spec_mpls.reserved/val: bad offset: syz=6 kernel=8
-field ib_flow_spec_mpls.reserved/val: bad size: syz=2 kernel=4
-field ib_flow_spec_mpls.val/mask: bad offset: syz=8 kernel=12
-struct ib_flow_spec_action_tag: bad number of fields: syz=5 kernel=3
-struct ib_flow_spec_action_tag: bad size: syz=16 kernel=12
-field ib_flow_spec_action_tag.reserved/tag_id: bad offset: syz=6 kernel=8
-field ib_flow_spec_action_tag.reserved/tag_id: bad size: syz=2 kernel=4
-struct ib_flow_spec_action_drop: bad number of fields: syz=3 kernel=2
-struct ib_uverbs_flow_spec_action_count: bad number of fields: syz=5 kernel=3
-field ib_uverbs_flow_spec_action_count.type/: bad size: syz=4 kernel=8
-field ib_uverbs_flow_spec_action_count.size/handle: bad offset: syz=4 kernel=8
-field ib_uverbs_flow_spec_action_count.size/handle: bad size: syz=2 kernel=4
-field ib_uverbs_flow_spec_action_count.reserved0/reserved1: bad offset: syz=6 kernel=12
-field ib_uverbs_flow_spec_action_count.reserved0/reserved1: bad size: syz=2 kernel=4
-struct union_ib_flow_spec: no corresponding struct in kernel
-struct create_flow_resp: no corresponding struct in kernel
-struct destroy_flow_cmd: no corresponding struct in kernel
-struct ib_uverbs_create_counters_cmd: no corresponding struct in kernel
-struct ib_uverbs_destroy_counters_cmd: no corresponding struct in kernel
-struct ib_uverbs_read_counters_cmd: no corresponding struct in kernel
+no-such-struct: mlx5_get_context_cmd_resp
+no-such-struct: mlx5_get_context_cmd
+no-such-struct: query_device_resp_ex
+no-such-struct: query_device_cmd_ex
+no-such-struct: alloc_pd_cmd_resp
+no-such-struct: mlx5_alloc_pd_cmd_resp
+no-such-struct: dealloc_pd_cmd
+no-such-struct: create_ah_cmd_resp
+no-such-struct: create_ah_cmd
+no-such-struct: destroy_ah_cmd
+no-such-struct: reg_mr_resp
+no-such-struct: rereg_mr_resp
+no-such-struct: dereg_mr_cmd
+no-such-struct: alloc_mw_resp
+no-such-struct: alloc_mw_cmd
+no-such-struct: dealloc_mw_cmd
+no-such-struct: create_comp_channel_resp
+no-such-struct: create_comp_channel_cmd
+no-such-struct: create_cq_resp
+no-such-struct: mlx5_create_cq_cmd
+no-such-struct: create_cq_ex_cmd
+no-such-struct: destroy_cq_resp
+no-such-struct: destroy_cq_cmd
+no-such-struct: kern_wc
+no-such-struct: poll_cq_cmd
+no-such-struct: req_notify_cq_cmd
+no-such-struct: create_qp_resp
+no-such-struct: mlx5_create_qp_cmd
+no-such-struct: mlx5_create_qp_resp
+no-such-struct: destroy_qp_resp
+no-such-struct: destroy_qp_cmd
+no-such-struct: modify_qp_cmd
+no-such-struct: create_wq_resp
+no-such-struct: create_wq_cmd
+no-such-struct: mlx5_create_wq_resp
+no-such-struct: mlx5_create_wq_cmd
+no-such-struct: destroy_wq_resp
+no-such-struct: destroy_wq_cmd
+no-such-struct: mlx5_modify_wq_cmd
+no-such-struct: create_rwq_ind_table_resp
+no-such-struct: create_rwq_ind_table_cmd
+no-such-struct: destroy_rwq_ind_table_cmd
+bad-struct-size: rdma: syz=16 kernel=256
+bad-field-number: rdma: syz=3 kernel=6
+bad-field-size: rdma.remote_addr/qptype: syz=8 kernel=1
+bad-field-size: rdma.rkey/prtype: syz=4 kernel=1
+bad-field-offset: rdma.rkey/prtype: syz=8 kernel=1
+bad-field-offset: rdma.reserved/cms: syz=12 kernel=2
+bad-field-size: rdma.reserved/cms: syz=4 kernel=1
+no-such-struct: atomic
+no-such-struct: ud
+no-such-struct: xrc
+no-such-struct: wr
+no-such-struct: kern_send_wr
+no-such-struct: post_send_resp
+no-such-struct: post_recv_resp
+no-such-struct: create_srq_resp
+no-such-struct: mlx5_ib_create_srq_resp
+no-such-struct: mlx5_create_srq_cmd
+no-such-struct: query_srq_resp
+no-such-struct: destroy_srq_resp
+no-such-struct: destroy_srq_cmd
+no-such-struct: kern_recv_wr
+no-such-struct: post_srq_recv_resp
+no-such-struct: open_xrcd_resp
+no-such-struct: close_xrcd_cmd
+bad-field-number: ib_flow_eth_filter: syz=4 kernel=5
+bad-field-number: ib_flow_spec_eth: syz=5 kernel=4
+bad-field-size: ib_flow_spec_eth.reserved/val: syz=2 kernel=16
+bad-field-offset: ib_flow_spec_eth.val/mask: syz=8 kernel=22
+bad-field-number: ib_flow_ipv4_filter: syz=6 kernel=7
+bad-field-number: ib_flow_spec_ipv4: syz=5 kernel=4
+bad-field-size: ib_flow_spec_ipv4.reserved/val: syz=2 kernel=12
+bad-field-offset: ib_flow_spec_ipv4.reserved/val: syz=6 kernel=8
+bad-field-offset: ib_flow_spec_ipv4.val/mask: syz=8 kernel=20
+bad-field-size: ib_flow_ipv6_filter.reserved/real_sz: syz=1 kernel=0
+bad-field-number: ib_flow_spec_ipv6: syz=5 kernel=4
+bad-field-size: ib_flow_spec_ipv6.reserved/val: syz=2 kernel=40
+bad-field-offset: ib_flow_spec_ipv6.reserved/val: syz=6 kernel=8
+bad-field-offset: ib_flow_spec_ipv6.val/mask: syz=8 kernel=48
+bad-field-number: ib_flow_tcp_udp_filter: syz=2 kernel=3
+bad-field-number: ib_flow_spec_tcp_udp: syz=5 kernel=4
+bad-field-size: ib_flow_spec_tcp_udp.reserved/val: syz=2 kernel=4
+bad-field-offset: ib_flow_spec_tcp_udp.val/mask: syz=8 kernel=10
+bad-field-number: ib_flow_esp_filter: syz=2 kernel=3
+bad-field-number: ib_flow_spec_esp: syz=5 kernel=4
+bad-field-size: ib_flow_spec_esp.reserved/val: syz=2 kernel=8
+bad-field-offset: ib_flow_spec_esp.reserved/val: syz=6 kernel=8
+bad-field-offset: ib_flow_spec_esp.val/mask: syz=8 kernel=16
+bad-field-number: ib_flow_tunnel_filter: syz=1 kernel=2
+bad-field-number: ib_flow_spec_tunnel: syz=5 kernel=4
+bad-field-size: ib_flow_spec_tunnel.reserved/val: syz=2 kernel=4
+bad-field-offset: ib_flow_spec_tunnel.reserved/val: syz=6 kernel=8
+bad-field-offset: ib_flow_spec_tunnel.val/mask: syz=8 kernel=12
+bad-field-number: ib_flow_gre_filter: syz=3 kernel=4
+bad-field-number: ib_flow_spec_gre: syz=5 kernel=4
+bad-field-size: ib_flow_spec_gre.reserved/val: syz=2 kernel=8
+bad-field-offset: ib_flow_spec_gre.reserved/val: syz=6 kernel=8
+bad-field-offset: ib_flow_spec_gre.val/mask: syz=8 kernel=16
+bad-field-number: ib_flow_mpls_filter: syz=1 kernel=2
+bad-field-number: ib_flow_spec_mpls: syz=5 kernel=4
+bad-field-size: ib_flow_spec_mpls.reserved/val: syz=2 kernel=4
+bad-field-offset: ib_flow_spec_mpls.reserved/val: syz=6 kernel=8
+bad-field-offset: ib_flow_spec_mpls.val/mask: syz=8 kernel=12
+bad-struct-size: ib_flow_spec_action_tag: syz=16 kernel=12
+bad-field-number: ib_flow_spec_action_tag: syz=5 kernel=3
+bad-field-size: ib_flow_spec_action_tag.reserved/tag_id: syz=2 kernel=4
+bad-field-offset: ib_flow_spec_action_tag.reserved/tag_id: syz=6 kernel=8
+bad-field-number: ib_flow_spec_action_drop: syz=3 kernel=2
+bad-field-number: ib_uverbs_flow_spec_action_count: syz=5 kernel=3
+bad-field-size: ib_uverbs_flow_spec_action_count.type/: syz=4 kernel=8
+bad-field-size: ib_uverbs_flow_spec_action_count.size/handle: syz=2 kernel=4
+bad-field-offset: ib_uverbs_flow_spec_action_count.size/handle: syz=4 kernel=8
+bad-field-size: ib_uverbs_flow_spec_action_count.reserved0/reserved1: syz=2 kernel=4
+bad-field-offset: ib_uverbs_flow_spec_action_count.reserved0/reserved1: syz=6 kernel=12
+no-such-struct: union_ib_flow_spec
+no-such-struct: create_flow_resp
+no-such-struct: destroy_flow_cmd
+no-such-struct: ib_uverbs_create_counters_cmd
+no-such-struct: ib_uverbs_destroy_counters_cmd
+no-such-struct: ib_uverbs_read_counters_cmd
diff --git a/sys/linux/dev_infiniband_rdma_cm.txt.warn b/sys/linux/dev_infiniband_rdma_cm.txt.warn
index e4097d814..ce1c00d08 100644
--- a/sys/linux/dev_infiniband_rdma_cm.txt.warn
+++ b/sys/linux/dev_infiniband_rdma_cm.txt.warn
@@ -1,15 +1,15 @@
-struct rdma_ucm_cmd_t: no corresponding struct in kernel
-struct rdma_ucm_create_mcast_id_resp: no corresponding struct in kernel
-struct rdma_ucm_leave_mcast: no corresponding struct in kernel
-struct rdma_ucm_event_resp: bad number of fields: syz=2 kernel=6
-field rdma_ucm_event_resp.id: bad size: syz=8 kernel=4
-struct rdma_ucm_set_option: bad number of fields: syz=4 kernel=5
-field rdma_ucm_set_option.id_tos/optval: bad size: syz=24 kernel=8
-field rdma_ucm_set_option.id_resuseaddr/id: bad offset: syz=24 kernel=8
-field rdma_ucm_set_option.id_resuseaddr/id: bad size: syz=24 kernel=4
-field rdma_ucm_set_option.id_afonly/level: bad offset: syz=48 kernel=12
-field rdma_ucm_set_option.id_afonly/level: bad size: syz=24 kernel=4
-field rdma_ucm_set_option.ib_path/optname: bad offset: syz=72 kernel=16
-field rdma_ucm_set_option.ib_path/optname: bad size: syz=24 kernel=4
-struct rdma_ucm_set_option_t: no corresponding struct in kernel
-struct sockaddr_rdma_cm: no corresponding struct in kernel
+no-such-struct: rdma_ucm_cmd_t
+no-such-struct: rdma_ucm_create_mcast_id_resp
+no-such-struct: rdma_ucm_leave_mcast
+bad-field-number: rdma_ucm_event_resp: syz=2 kernel=6
+bad-field-size: rdma_ucm_event_resp.id: syz=8 kernel=4
+bad-field-number: rdma_ucm_set_option: syz=4 kernel=5
+bad-field-size: rdma_ucm_set_option.id_tos/optval: syz=24 kernel=8
+bad-field-size: rdma_ucm_set_option.id_resuseaddr/id: syz=24 kernel=4
+bad-field-offset: rdma_ucm_set_option.id_resuseaddr/id: syz=24 kernel=8
+bad-field-size: rdma_ucm_set_option.id_afonly/level: syz=24 kernel=4
+bad-field-offset: rdma_ucm_set_option.id_afonly/level: syz=48 kernel=12
+bad-field-size: rdma_ucm_set_option.ib_path/optname: syz=24 kernel=4
+bad-field-offset: rdma_ucm_set_option.ib_path/optname: syz=72 kernel=16
+no-such-struct: rdma_ucm_set_option_t
+no-such-struct: sockaddr_rdma_cm
diff --git a/sys/linux/dev_input.txt.warn b/sys/linux/dev_input.txt.warn
index 5a10af1d4..82afa417a 100644
--- a/sys/linux/dev_input.txt.warn
+++ b/sys/linux/dev_input.txt.warn
@@ -1,8 +1,15 @@
-struct input_event: bad number of fields: syz=4 kernel=5
-field input_event.time/__sec: bad size: syz=16 kernel=8
-field input_event.type/__usec: bad offset: syz=16 kernel=8
-field input_event.type/__usec: bad size: syz=2 kernel=8
-field input_event.code/type: bad offset: syz=18 kernel=16
-field input_event.val/code: bad offset: syz=20 kernel=18
-field input_event.val/code: bad size: syz=4 kernel=2
-struct ff_effect_u: no corresponding struct in kernel
+bad-field-number: input_event: syz=4 kernel=5
+bad-field-size: input_event.time/__sec: syz=16 kernel=8 [amd64]
+bad-field-size: input_event.time/__sec: syz=8 kernel=4 [386]
+bad-field-offset: input_event.type/__usec: syz=16 kernel=8 [amd64]
+bad-field-size: input_event.type/__usec: syz=2 kernel=4 [386]
+bad-field-size: input_event.type/__usec: syz=2 kernel=8 [amd64]
+bad-field-offset: input_event.type/__usec: syz=8 kernel=4 [386]
+bad-field-offset: input_event.code/type: syz=10 kernel=8 [386]
+bad-field-offset: input_event.code/type: syz=18 kernel=16 [amd64]
+bad-field-offset: input_event.val/code: syz=12 kernel=10 [386]
+bad-field-offset: input_event.val/code: syz=20 kernel=18 [amd64]
+bad-field-size: input_event.val/code: syz=4 kernel=2
+no-such-struct: ff_effect_u
+bad-struct-size: input_mask: syz=12 kernel=16 [386]
+bad-field-size: input_mask.ptr/codes_ptr: syz=4 kernel=8 [386]
diff --git a/sys/linux/dev_kvm.txt.warn b/sys/linux/dev_kvm.txt.warn
index 6580f2bae..ee439dc83 100644
--- a/sys/linux/dev_kvm.txt.warn
+++ b/sys/linux/dev_kvm.txt.warn
@@ -1,56 +1,66 @@
-unsupported syscall: ioctl$KVM_ARM_VCPU_INIT due to missing const KVM_ARM_VCPU_INIT
-struct kvm_text_x86: no corresponding struct in kernel
-struct kvm_text_x86_real: no corresponding struct in kernel
-struct kvm_text_x86_16: no corresponding struct in kernel
-struct kvm_text_x86_32: no corresponding struct in kernel
-struct kvm_text_x86_64: no corresponding struct in kernel
-struct kvm_text_arm64: no corresponding struct in kernel
-struct kvm_setup_opt_x86: no corresponding struct in kernel
-struct kvm_setup_opt_cr0: no corresponding struct in kernel
-struct kvm_setup_opt_cr4: no corresponding struct in kernel
-struct kvm_setup_opt_efer: no corresponding struct in kernel
-struct kvm_setup_opt_flags: no corresponding struct in kernel
-struct kvm_setup_opt_cstype0: no corresponding struct in kernel
-struct kvm_setup_opt_cstype3: no corresponding struct in kernel
-struct kvm_setup_opt_dstype0: no corresponding struct in kernel
-struct kvm_setup_opt_dstype3: no corresponding struct in kernel
-struct kvm_setup_opt_vmwrite: no corresponding struct in kernel
-struct kvm_setup_opt_arm64: no corresponding struct in kernel
-struct kvm_setup_opt_feature: no corresponding struct in kernel
-struct kvm_arm_device_addr: no corresponding struct in kernel
-struct kvm_s390_interrupt: no corresponding struct in kernel
-struct kvm_one_reg: no corresponding struct in kernel
-struct kvm_s390_ucas_mapping: no corresponding struct in kernel
-struct kvm_dirty_tlb: no corresponding struct in kernel
-struct kvm_assigned_msix_entry: no corresponding struct in kernel
-struct kvm_assigned_msix_nr: no corresponding struct in kernel
-struct kvm_irq_routing_entry_u: no corresponding struct in kernel
-struct kvm_assigned_irq: no corresponding struct in kernel
-struct kvm_assigned_pci_dev: no corresponding struct in kernel
-struct kvm_enable_cap_cpu: no corresponding struct in kernel
-struct kvm_enable_cap_vm: no corresponding struct in kernel
-struct kvm_vcpu_events: bad number of fields: syz=22 kernel=9
-field kvm_vcpu_events.exinjec/exception: bad size: syz=1 kernel=8
-field kvm_vcpu_events.exnr/interrupt: bad offset: syz=1 kernel=8
-field kvm_vcpu_events.exnr/interrupt: bad size: syz=1 kernel=4
-field kvm_vcpu_events.exhec/nmi: bad offset: syz=2 kernel=12
-field kvm_vcpu_events.exhec/nmi: bad size: syz=1 kernel=4
-field kvm_vcpu_events.pad1/sipi_vector: bad offset: syz=3 kernel=16
-field kvm_vcpu_events.pad1/sipi_vector: bad size: syz=1 kernel=4
-field kvm_vcpu_events.exec/flags: bad offset: syz=4 kernel=20
-field kvm_vcpu_events.ininjec/smi: bad offset: syz=8 kernel=24
-field kvm_vcpu_events.ininjec/smi: bad size: syz=1 kernel=4
-field kvm_vcpu_events.innr/reserved: bad offset: syz=9 kernel=28
-field kvm_vcpu_events.innr/reserved: bad size: syz=1 kernel=27
-field kvm_vcpu_events.insoft/exception_has_payload: bad offset: syz=10 kernel=55
-field kvm_vcpu_events.inshad/exception_payload: bad offset: syz=11 kernel=56
-field kvm_vcpu_events.inshad/exception_payload: bad size: syz=1 kernel=8
-struct kvm_regs: bad number of fields: syz=3 kernel=18
-field kvm_regs.gp/rax: bad size: syz=128 kernel=8
-field kvm_regs.rip/rbx: bad offset: syz=128 kernel=8
-field kvm_regs.rflags/rcx: bad offset: syz=136 kernel=16
-struct kvm_irq_chip: no corresponding struct in kernel
-struct kvm_ioapic_redir: no corresponding struct in kernel
-struct kvm_mce_cap: no corresponding struct in kernel
-struct kvm_nested_state_arg: no corresponding struct in kernel
-struct kvm_vmx_nested_state: no corresponding struct in kernel
+compiler: unsupported syscall: ioctl$KVM_ARM_VCPU_INIT due to missing const KVM_ARM_VCPU_INIT
+no-such-struct: kvm_text_x86
+no-such-struct: kvm_text_x86_real
+no-such-struct: kvm_text_x86_16
+no-such-struct: kvm_text_x86_32
+no-such-struct: kvm_text_x86_64
+no-such-struct: kvm_text_arm64
+no-such-struct: kvm_setup_opt_x86
+no-such-struct: kvm_setup_opt_cr0
+no-such-struct: kvm_setup_opt_cr4
+no-such-struct: kvm_setup_opt_efer
+no-such-struct: kvm_setup_opt_flags
+no-such-struct: kvm_setup_opt_cstype0
+no-such-struct: kvm_setup_opt_cstype3
+no-such-struct: kvm_setup_opt_dstype0
+no-such-struct: kvm_setup_opt_dstype3
+no-such-struct: kvm_setup_opt_vmwrite
+no-such-struct: kvm_setup_opt_arm64
+no-such-struct: kvm_setup_opt_feature
+no-such-struct: kvm_arm_device_addr
+no-such-struct: kvm_s390_interrupt
+no-such-struct: kvm_one_reg
+no-such-struct: kvm_s390_ucas_mapping
+no-such-struct: kvm_dirty_tlb
+no-such-struct: kvm_assigned_msix_entry
+no-such-struct: kvm_assigned_msix_nr
+no-such-struct: kvm_irq_routing_entry_u
+no-such-struct: kvm_assigned_irq
+no-such-struct: kvm_assigned_pci_dev
+no-such-struct: kvm_enable_cap_cpu
+no-such-struct: kvm_enable_cap_vm
+bad-field-size: kvm_userspace_memory_region.addr/userspace_addr: syz=4 kernel=8 [386]
+bad-field-number: kvm_vcpu_events: syz=22 kernel=9
+bad-field-size: kvm_vcpu_events.exinjec/exception: syz=1 kernel=8
+bad-field-size: kvm_vcpu_events.exnr/interrupt: syz=1 kernel=4
+bad-field-offset: kvm_vcpu_events.exnr/interrupt: syz=1 kernel=8
+bad-field-size: kvm_vcpu_events.exhec/nmi: syz=1 kernel=4
+bad-field-offset: kvm_vcpu_events.exhec/nmi: syz=2 kernel=12
+bad-field-size: kvm_vcpu_events.pad1/sipi_vector: syz=1 kernel=4
+bad-field-offset: kvm_vcpu_events.pad1/sipi_vector: syz=3 kernel=16
+bad-field-offset: kvm_vcpu_events.exec/flags: syz=4 kernel=20
+bad-field-size: kvm_vcpu_events.ininjec/smi: syz=1 kernel=4
+bad-field-offset: kvm_vcpu_events.ininjec/smi: syz=8 kernel=24
+bad-field-size: kvm_vcpu_events.innr/reserved: syz=1 kernel=27
+bad-field-offset: kvm_vcpu_events.innr/reserved: syz=9 kernel=28
+bad-field-offset: kvm_vcpu_events.insoft/exception_has_payload: syz=10 kernel=55
+bad-field-size: kvm_vcpu_events.inshad/exception_payload: syz=1 kernel=8
+bad-field-offset: kvm_vcpu_events.inshad/exception_payload: syz=11 kernel=56
+bad-struct-size: kvm_xen_hvm_config: syz=48 kernel=56 [386]
+bad-field-size: kvm_xen_hvm_config.addr32/blob_addr_32: syz=4 kernel=8 [386]
+bad-field-offset: kvm_xen_hvm_config.addr64/blob_addr_64: syz=12 kernel=16 [386]
+bad-field-size: kvm_xen_hvm_config.addr64/blob_addr_64: syz=4 kernel=8 [386]
+bad-field-offset: kvm_xen_hvm_config.size32/blob_size_32: syz=16 kernel=24 [386]
+bad-field-offset: kvm_xen_hvm_config.size64/blob_size_64: syz=17 kernel=25 [386]
+bad-field-offset: kvm_xen_hvm_config.pad/pad2: syz=18 kernel=26 [386]
+bad-struct-size: kvm_dirty_log: syz=12 kernel=16 [386]
+bad-field-size: kvm_dirty_log.bitmap/: syz=4 kernel=8 [386]
+bad-field-number: kvm_regs: syz=3 kernel=18
+bad-field-size: kvm_regs.gp/rax: syz=128 kernel=8
+bad-field-offset: kvm_regs.rip/rbx: syz=128 kernel=8
+bad-field-offset: kvm_regs.rflags/rcx: syz=136 kernel=16
+no-such-struct: kvm_irq_chip
+no-such-struct: kvm_ioapic_redir
+no-such-struct: kvm_mce_cap
+no-such-struct: kvm_nested_state_arg
+no-such-struct: kvm_vmx_nested_state
diff --git a/sys/linux/dev_loop.txt.warn b/sys/linux/dev_loop.txt.warn
new file mode 100644
index 000000000..495be9d5b
--- /dev/null
+++ b/sys/linux/dev_loop.txt.warn
@@ -0,0 +1,4 @@
+bad-field-size: loop_info.lo_device: syz=4 kernel=2 [386]
+bad-field-size: loop_info.lo_rdevice: syz=4 kernel=2 [386]
+bad-struct-size: loop_info64: syz=224 kernel=232 [386]
+bad-field-size: loop_info64.lo_init: syz=8 kernel=16 [386]
diff --git a/sys/linux/dev_nbd.txt.warn b/sys/linux/dev_nbd.txt.warn
index fe8941a0e..b6e4d8d20 100644
--- a/sys/linux/dev_nbd.txt.warn
+++ b/sys/linux/dev_nbd.txt.warn
@@ -1 +1 @@
-struct nbd_sock_pair: no corresponding struct in kernel
+no-such-struct: nbd_sock_pair
diff --git a/sys/linux/dev_ptmx.txt.warn b/sys/linux/dev_ptmx.txt.warn
index f2920e2ad..d568bd953 100644
--- a/sys/linux/dev_ptmx.txt.warn
+++ b/sys/linux/dev_ptmx.txt.warn
@@ -1,15 +1,15 @@
-struct io_cmap: no corresponding struct in kernel
-struct unimapdesc_in: no corresponding struct in kernel
-struct unimapdesc_out: no corresponding struct in kernel
-struct unimapinit: no corresponding struct in kernel
-struct tiocl_selection_arg: no corresponding struct in kernel
-struct tiocl_selection: bad number of fields: syz=6 kernel=5
-struct tiocl_selection: bad size: syz=11 kernel=10
-field tiocl_selection.subcode/xs: bad size: syz=1 kernel=2
-field tiocl_selection.xs/ys: bad offset: syz=1 kernel=2
-field tiocl_selection.ys/xe: bad offset: syz=3 kernel=4
-field tiocl_selection.xe/ye: bad offset: syz=5 kernel=6
-field tiocl_selection.ye/sel_mode: bad offset: syz=7 kernel=8
-struct loadlut: no corresponding struct in kernel
-struct tiocl_shift_state: no corresponding struct in kernel
-struct tioctl_scroll_console: no corresponding struct in kernel
+no-such-struct: io_cmap
+no-such-struct: unimapdesc_in
+no-such-struct: unimapdesc_out
+no-such-struct: unimapinit
+no-such-struct: tiocl_selection_arg
+bad-struct-size: tiocl_selection: syz=11 kernel=10
+bad-field-number: tiocl_selection: syz=6 kernel=5
+bad-field-size: tiocl_selection.subcode/xs: syz=1 kernel=2
+bad-field-offset: tiocl_selection.xs/ys: syz=1 kernel=2
+bad-field-offset: tiocl_selection.ys/xe: syz=3 kernel=4
+bad-field-offset: tiocl_selection.xe/ye: syz=5 kernel=6
+bad-field-offset: tiocl_selection.ye/sel_mode: syz=7 kernel=8
+no-such-struct: loadlut
+no-such-struct: tiocl_shift_state
+no-such-struct: tioctl_scroll_console
diff --git a/sys/linux/dev_rtc.txt.warn b/sys/linux/dev_rtc.txt.warn
index f836365f2..b2eddf078 100644
--- a/sys/linux/dev_rtc.txt.warn
+++ b/sys/linux/dev_rtc.txt.warn
@@ -1 +1 @@
-struct rtc_pll_info: no corresponding struct in kernel
+no-such-struct: rtc_pll_info
diff --git a/sys/linux/dev_sg.txt.warn b/sys/linux/dev_sg.txt.warn
index 89c582529..81ad46134 100644
--- a/sys/linux/dev_sg.txt.warn
+++ b/sys/linux/dev_sg.txt.warn
@@ -1,29 +1,46 @@
-struct sg_io_hdr: bad number of fields: syz=20 kernel=22
-field sg_io_hdr.data/iovec_count: bad size: syz=14 kernel=2
-field sg_io_hdr.cmdp/dxfer_len: bad offset: syz=24 kernel=12
-field sg_io_hdr.cmdp/dxfer_len: bad size: syz=8 kernel=4
-field sg_io_hdr.sbp/dxferp: bad offset: syz=32 kernel=16
-field sg_io_hdr.timeout/cmdp: bad offset: syz=40 kernel=24
-field sg_io_hdr.timeout/cmdp: bad size: syz=4 kernel=8
-field sg_io_hdr.flags/sbp: bad offset: syz=44 kernel=32
-field sg_io_hdr.flags/sbp: bad size: syz=4 kernel=8
-field sg_io_hdr.pack_id/timeout: bad offset: syz=48 kernel=40
-field sg_io_hdr.usr_ptr/flags: bad offset: syz=52 kernel=44
-field sg_io_hdr.usr_ptr/flags: bad size: syz=8 kernel=4
-field sg_io_hdr.status/pack_id: bad offset: syz=60 kernel=48
-field sg_io_hdr.status/pack_id: bad size: syz=1 kernel=4
-field sg_io_hdr.masked_status/usr_ptr: bad offset: syz=61 kernel=56
-field sg_io_hdr.masked_status/usr_ptr: bad size: syz=1 kernel=8
-field sg_io_hdr.msg_status/status: bad offset: syz=62 kernel=64
-field sg_io_hdr.sb_len_wr/masked_status: bad offset: syz=63 kernel=65
-field sg_io_hdr.host_status/msg_status: bad offset: syz=64 kernel=66
-field sg_io_hdr.host_status/msg_status: bad size: syz=2 kernel=1
-field sg_io_hdr.driver_status/sb_len_wr: bad offset: syz=66 kernel=67
-field sg_io_hdr.driver_status/sb_len_wr: bad size: syz=2 kernel=1
-field sg_io_hdr.resid/host_status: bad size: syz=4 kernel=2
-field sg_io_hdr.duration/driver_status: bad offset: syz=72 kernel=70
-field sg_io_hdr.duration/driver_status: bad size: syz=4 kernel=2
-field sg_io_hdr.info/resid: bad offset: syz=76 kernel=72
-struct sg_io_hdr_data: no corresponding struct in kernel
-struct sg_io_hdr_data_buffer: no corresponding struct in kernel
-struct sg_io_hdr_data_scatter: no corresponding struct in kernel
+bad-field-number: sg_io_hdr: syz=20 kernel=22
+bad-field-size: sg_io_hdr.data/iovec_count: syz=10 kernel=2 [386]
+bad-field-size: sg_io_hdr.data/iovec_count: syz=14 kernel=2 [amd64]
+bad-field-offset: sg_io_hdr.cmdp/dxfer_len: syz=20 kernel=12 [386]
+bad-field-offset: sg_io_hdr.cmdp/dxfer_len: syz=24 kernel=12 [amd64]
+bad-field-size: sg_io_hdr.cmdp/dxfer_len: syz=8 kernel=4 [amd64]
+bad-field-offset: sg_io_hdr.sbp/dxferp: syz=24 kernel=16 [386]
+bad-field-offset: sg_io_hdr.sbp/dxferp: syz=32 kernel=16 [amd64]
+bad-field-offset: sg_io_hdr.timeout/cmdp: syz=28 kernel=20 [386]
+bad-field-size: sg_io_hdr.timeout/cmdp: syz=4 kernel=8 [amd64]
+bad-field-offset: sg_io_hdr.timeout/cmdp: syz=40 kernel=24 [amd64]
+bad-field-offset: sg_io_hdr.flags/sbp: syz=32 kernel=24 [386]
+bad-field-size: sg_io_hdr.flags/sbp: syz=4 kernel=8 [amd64]
+bad-field-offset: sg_io_hdr.flags/sbp: syz=44 kernel=32 [amd64]
+bad-field-offset: sg_io_hdr.pack_id/timeout: syz=36 kernel=28 [386]
+bad-field-offset: sg_io_hdr.pack_id/timeout: syz=48 kernel=40 [amd64]
+bad-field-offset: sg_io_hdr.usr_ptr/flags: syz=40 kernel=32 [386]
+bad-field-offset: sg_io_hdr.usr_ptr/flags: syz=52 kernel=44 [amd64]
+bad-field-size: sg_io_hdr.usr_ptr/flags: syz=8 kernel=4 [amd64]
+bad-field-size: sg_io_hdr.status/pack_id: syz=1 kernel=4
+bad-field-offset: sg_io_hdr.status/pack_id: syz=44 kernel=36 [386]
+bad-field-offset: sg_io_hdr.status/pack_id: syz=60 kernel=48 [amd64]
+bad-field-size: sg_io_hdr.masked_status/usr_ptr: syz=1 kernel=4 [386]
+bad-field-size: sg_io_hdr.masked_status/usr_ptr: syz=1 kernel=8 [amd64]
+bad-field-offset: sg_io_hdr.masked_status/usr_ptr: syz=45 kernel=40 [386]
+bad-field-offset: sg_io_hdr.masked_status/usr_ptr: syz=61 kernel=56 [amd64]
+bad-field-offset: sg_io_hdr.msg_status/status: syz=46 kernel=44 [386]
+bad-field-offset: sg_io_hdr.msg_status/status: syz=62 kernel=64 [amd64]
+bad-field-offset: sg_io_hdr.sb_len_wr/masked_status: syz=47 kernel=45 [386]
+bad-field-offset: sg_io_hdr.sb_len_wr/masked_status: syz=63 kernel=65 [amd64]
+bad-field-size: sg_io_hdr.host_status/msg_status: syz=2 kernel=1
+bad-field-offset: sg_io_hdr.host_status/msg_status: syz=48 kernel=46 [386]
+bad-field-offset: sg_io_hdr.host_status/msg_status: syz=64 kernel=66 [amd64]
+bad-field-size: sg_io_hdr.driver_status/sb_len_wr: syz=2 kernel=1
+bad-field-offset: sg_io_hdr.driver_status/sb_len_wr: syz=50 kernel=47 [386]
+bad-field-offset: sg_io_hdr.driver_status/sb_len_wr: syz=66 kernel=67 [amd64]
+bad-field-size: sg_io_hdr.resid/host_status: syz=4 kernel=2
+bad-field-offset: sg_io_hdr.resid/host_status: syz=52 kernel=48 [386]
+bad-field-size: sg_io_hdr.duration/driver_status: syz=4 kernel=2
+bad-field-offset: sg_io_hdr.duration/driver_status: syz=56 kernel=50 [386]
+bad-field-offset: sg_io_hdr.duration/driver_status: syz=72 kernel=70 [amd64]
+bad-field-offset: sg_io_hdr.info/resid: syz=60 kernel=52 [386]
+bad-field-offset: sg_io_hdr.info/resid: syz=76 kernel=72 [amd64]
+no-such-struct: sg_io_hdr_data
+no-such-struct: sg_io_hdr_data_buffer
+no-such-struct: sg_io_hdr_data_scatter
diff --git a/sys/linux/dev_snd_control.txt.warn b/sys/linux/dev_snd_control.txt.warn
index f5ba6bdc6..0ef039a17 100644
--- a/sys/linux/dev_snd_control.txt.warn
+++ b/sys/linux/dev_snd_control.txt.warn
@@ -1,7 +1,7 @@
-struct snd_ctl_elem_info: bad number of fields: syz=12 kernel=8
-field snd_ctl_elem_info.items/value: bad size: syz=4 kernel=128
-len target names_ptr refer to an array with variable-size elements (do you mean bytesize?)
-field snd_ctl_elem_info.item/dimen: bad offset: syz=84 kernel=208
-field snd_ctl_elem_info.item/dimen: bad size: syz=4 kernel=8
-field snd_ctl_elem_info.name/reserved: bad offset: syz=88 kernel=216
-field snd_ctl_elem_info.name/reserved: bad size: syz=64 kernel=56
+bad-field-number: snd_ctl_elem_info: syz=12 kernel=8
+compiler: len target names_ptr refer to an array with variable-size elements (do you mean bytesize?)
+bad-field-size: snd_ctl_elem_info.items/value: syz=4 kernel=128
+bad-field-size: snd_ctl_elem_info.item/dimen: syz=4 kernel=8
+bad-field-offset: snd_ctl_elem_info.item/dimen: syz=84 kernel=208
+bad-field-size: snd_ctl_elem_info.name/reserved: syz=64 kernel=56
+bad-field-offset: snd_ctl_elem_info.name/reserved: syz=88 kernel=216
diff --git a/sys/linux/dev_snd_midi.txt.warn b/sys/linux/dev_snd_midi.txt.warn
new file mode 100644
index 000000000..fb2aa7242
--- /dev/null
+++ b/sys/linux/dev_snd_midi.txt.warn
@@ -0,0 +1,5 @@
+bad-struct-size: snd_rawmidi_status64: syz=56 kernel=48 [386]
+bad-field-size: snd_rawmidi_status64.avail: syz=8 kernel=4 [386]
+bad-field-offset: snd_rawmidi_status64.xruns: syz=32 kernel=28 [386]
+bad-field-size: snd_rawmidi_status64.xruns: syz=8 kernel=4 [386]
+bad-field-offset: snd_rawmidi_status64.reserved: syz=40 kernel=32 [386]
diff --git a/sys/linux/dev_snd_pcm.txt.warn b/sys/linux/dev_snd_pcm.txt.warn
index 47a92e7f7..f185849a4 100644
--- a/sys/linux/dev_snd_pcm.txt.warn
+++ b/sys/linux/dev_snd_pcm.txt.warn
@@ -1,31 +1,50 @@
-struct snd_pcm_sync_ptr: bad number of fields: syz=3 kernel=4
-field snd_pcm_sync_ptr.status/pad1: bad size: syz=64 kernel=4
-field snd_pcm_sync_ptr.control/s: bad offset: syz=72 kernel=8
-field snd_pcm_sync_ptr.control/s: bad size: syz=16 kernel=64
-struct snd_pcm_mmap_control: bad number of fields: syz=2 kernel=6
-field snd_pcm_mmap_control.appl_ptr/__pad1: bad size: syz=8 kernel=0
-field snd_pcm_mmap_control.avail_min/appl_ptr: bad offset: syz=8 kernel=0
-struct snd_pcm_status32: bad number of fields: syz=13 kernel=19
-field snd_pcm_status32.trigger_tstamp_sec: bad offset: syz=8 kernel=4
-field snd_pcm_status32.trigger_tstamp_sec: bad size: syz=8 kernel=4
-field snd_pcm_status32.trigger_tstamp_nsec: bad offset: syz=16 kernel=8
-field snd_pcm_status32.trigger_tstamp_nsec: bad size: syz=8 kernel=4
-field snd_pcm_status32.tstamp_sec: bad offset: syz=24 kernel=12
-field snd_pcm_status32.tstamp_sec: bad size: syz=8 kernel=4
-field snd_pcm_status32.tstamp_nsec: bad offset: syz=32 kernel=16
-field snd_pcm_status32.tstamp_nsec: bad size: syz=8 kernel=4
-field snd_pcm_status32.appl_ptr: bad offset: syz=40 kernel=20
-field snd_pcm_status32.appl_ptr: bad size: syz=8 kernel=4
-field snd_pcm_status32.hw_ptr: bad offset: syz=48 kernel=24
-field snd_pcm_status32.hw_ptr: bad size: syz=8 kernel=4
-field snd_pcm_status32.delay: bad offset: syz=56 kernel=28
-field snd_pcm_status32.delay: bad size: syz=8 kernel=4
-field snd_pcm_status32.avail: bad offset: syz=64 kernel=32
-field snd_pcm_status32.avail: bad size: syz=8 kernel=4
-field snd_pcm_status32.avail_max: bad offset: syz=72 kernel=36
-field snd_pcm_status32.avail_max: bad size: syz=8 kernel=4
-field snd_pcm_status32.overrange: bad offset: syz=80 kernel=40
-field snd_pcm_status32.overrange: bad size: syz=8 kernel=4
-field snd_pcm_status32.suspended_state: bad offset: syz=88 kernel=44
-field snd_pcm_status32.audio_tstamp_data: bad offset: syz=92 kernel=48
-struct snd_pcm_status64: bad number of fields: syz=14 kernel=20
+bad-field-number: snd_pcm_sync_ptr: syz=3 kernel=4
+bad-field-size: snd_pcm_sync_ptr.status/pad1: syz=64 kernel=4
+bad-field-size: snd_pcm_sync_ptr.control/s: syz=16 kernel=64 [amd64]
+bad-field-offset: snd_pcm_sync_ptr.control/s: syz=68 kernel=8 [386]
+bad-field-offset: snd_pcm_sync_ptr.control/s: syz=72 kernel=8 [amd64]
+bad-field-size: snd_pcm_sync_ptr.control/s: syz=8 kernel=64 [386]
+bad-field-number: snd_pcm_mmap_control: syz=2 kernel=6
+bad-struct-size: snd_pcm_mmap_control: syz=8 kernel=12 [386]
+bad-field-size: snd_pcm_mmap_control.appl_ptr/__pad1: syz=4 kernel=0 [386]
+bad-field-size: snd_pcm_mmap_control.appl_ptr/__pad1: syz=8 kernel=0 [amd64]
+bad-field-offset: snd_pcm_mmap_control.avail_min/appl_ptr: syz=4 kernel=0 [386]
+bad-field-offset: snd_pcm_mmap_control.avail_min/appl_ptr: syz=8 kernel=0 [amd64]
+bad-field-number: snd_pcm_status32: syz=13 kernel=19
+bad-field-size: snd_pcm_status32.trigger_tstamp_sec: syz=8 kernel=4 [amd64]
+bad-field-offset: snd_pcm_status32.trigger_tstamp_nsec: syz=16 kernel=8 [amd64]
+bad-field-size: snd_pcm_status32.trigger_tstamp_nsec: syz=8 kernel=4 [amd64]
+bad-field-offset: snd_pcm_status32.tstamp_sec: syz=24 kernel=12 [amd64]
+bad-field-size: snd_pcm_status32.tstamp_sec: syz=8 kernel=4 [amd64]
+bad-field-offset: snd_pcm_status32.tstamp_nsec: syz=32 kernel=16 [amd64]
+bad-field-size: snd_pcm_status32.tstamp_nsec: syz=8 kernel=4 [amd64]
+bad-field-offset: snd_pcm_status32.appl_ptr: syz=40 kernel=20 [amd64]
+bad-field-size: snd_pcm_status32.appl_ptr: syz=8 kernel=4 [amd64]
+bad-field-offset: snd_pcm_status32.hw_ptr: syz=48 kernel=24 [amd64]
+bad-field-size: snd_pcm_status32.hw_ptr: syz=8 kernel=4 [amd64]
+bad-field-offset: snd_pcm_status32.delay: syz=56 kernel=28 [amd64]
+bad-field-size: snd_pcm_status32.delay: syz=8 kernel=4 [amd64]
+bad-field-offset: snd_pcm_status32.avail: syz=64 kernel=32 [amd64]
+bad-field-size: snd_pcm_status32.avail: syz=8 kernel=4 [amd64]
+bad-field-offset: snd_pcm_status32.avail_max: syz=72 kernel=36 [amd64]
+bad-field-size: snd_pcm_status32.avail_max: syz=8 kernel=4 [amd64]
+bad-field-size: snd_pcm_status32.overrange: syz=8 kernel=4 [amd64]
+bad-field-offset: snd_pcm_status32.overrange: syz=80 kernel=40 [amd64]
+bad-field-offset: snd_pcm_status32.suspended_state: syz=88 kernel=44 [amd64]
+bad-field-offset: snd_pcm_status32.audio_tstamp_data: syz=92 kernel=48 [amd64]
+bad-field-number: snd_pcm_status64: syz=14 kernel=20
+bad-field-size: snd_pcm_status64.trigger_tstamp_sec: syz=4 kernel=8 [386]
+bad-field-offset: snd_pcm_status64.trigger_tstamp_nsec: syz=12 kernel=16 [386]
+bad-field-size: snd_pcm_status64.trigger_tstamp_nsec: syz=4 kernel=8 [386]
+bad-field-offset: snd_pcm_status64.tstamp_sec: syz=16 kernel=24 [386]
+bad-field-size: snd_pcm_status64.tstamp_sec: syz=4 kernel=8 [386]
+bad-field-offset: snd_pcm_status64.tstamp_nsec: syz=20 kernel=32 [386]
+bad-field-size: snd_pcm_status64.tstamp_nsec: syz=4 kernel=8 [386]
+bad-field-offset: snd_pcm_status64.appl_ptr: syz=24 kernel=40 [386]
+bad-field-offset: snd_pcm_status64.hw_ptr: syz=28 kernel=44 [386]
+bad-field-offset: snd_pcm_status64.delay: syz=32 kernel=48 [386]
+bad-field-offset: snd_pcm_status64.avail: syz=36 kernel=52 [386]
+bad-field-offset: snd_pcm_status64.avail_max: syz=40 kernel=56 [386]
+bad-field-offset: snd_pcm_status64.overrange: syz=44 kernel=60 [386]
+bad-field-offset: snd_pcm_status64.suspended_state: syz=48 kernel=64 [386]
+bad-field-offset: snd_pcm_status64.audio_tstamp_data: syz=52 kernel=68 [386]
diff --git a/sys/linux/dev_snd_seq.txt.warn b/sys/linux/dev_snd_seq.txt.warn
index cbfa8a49c..19defed76 100644
--- a/sys/linux/dev_snd_seq.txt.warn
+++ b/sys/linux/dev_snd_seq.txt.warn
@@ -1,14 +1,13 @@
-struct snd_seq_queue_timer: bad number of fields: syz=5 kernel=4
-field snd_seq_queue_timer.id/u: bad size: syz=20 kernel=24
-field snd_seq_queue_timer.resolution/reserved: bad offset: syz=28 kernel=32
-field snd_seq_queue_timer.resolution/reserved: bad size: syz=4 kernel=64
-struct snd_seq_event_data: no corresponding struct in kernel
-struct snd_seq_ev_ctrl: bad number of fields: syz=3 kernel=6
-field snd_seq_ev_ctrl.param/unused1: bad offset: syz=4 kernel=1
-field snd_seq_ev_ctrl.param/unused1: bad size: syz=4 kernel=1
-field snd_seq_ev_ctrl.val/unused2: bad offset: syz=8 kernel=2
-field snd_seq_ev_ctrl.val/unused2: bad size: syz=4 kernel=1
-struct snd_seq_ev_queue_control: bad number of fields: syz=2 kernel=3
-field snd_seq_ev_queue_control.param/pad: bad offset: syz=4 kernel=1
-field snd_seq_ev_queue_control.param/pad: bad size: syz=8 kernel=3
-struct snd_seq_timestamp: no corresponding struct in kernel
+bad-field-number: snd_seq_queue_timer: syz=5 kernel=4
+bad-field-size: snd_seq_queue_timer.id/u: syz=20 kernel=24
+bad-field-offset: snd_seq_queue_timer.resolution/reserved: syz=28 kernel=32
+bad-field-size: snd_seq_queue_timer.resolution/reserved: syz=4 kernel=64
+no-such-struct: snd_seq_event_data
+bad-field-number: snd_seq_ev_ctrl: syz=3 kernel=6
+bad-field-offset: snd_seq_ev_ctrl.param/unused1: syz=4 kernel=1
+bad-field-size: snd_seq_ev_ctrl.val/unused2: syz=4 kernel=1
+bad-field-offset: snd_seq_ev_ctrl.val/unused2: syz=8 kernel=2
+bad-field-number: snd_seq_ev_queue_control: syz=2 kernel=3
+bad-field-offset: snd_seq_ev_queue_control.param/pad: syz=4 kernel=1
+bad-field-size: snd_seq_ev_queue_control.param/pad: syz=8 kernel=3
+no-such-struct: snd_seq_timestamp
diff --git a/sys/linux/dev_tlk_device.txt.warn b/sys/linux/dev_tlk_device.txt.warn
index 8d890ac03..24fb12b36 100644
--- a/sys/linux/dev_tlk_device.txt.warn
+++ b/sys/linux/dev_tlk_device.txt.warn
@@ -1,9 +1,13 @@
-struct te_service_id: no corresponding struct in kernel
-struct te_opensession: no corresponding struct in kernel
-struct te_closesession: no corresponding struct in kernel
-struct te_answer: no corresponding struct in kernel
-struct te_launchop: no corresponding struct in kernel
-struct te_operation: no corresponding struct in kernel
-struct te_int_mem_union: no corresponding struct in kernel
-struct te_mem: no corresponding struct in kernel
-struct te_oper_param: no corresponding struct in kernel
+compiler: unsupported syscall: ioctl$TE_IOCTL_OPEN_CLIENT_SESSION due to missing const TE_IOCTL_OPEN_CLIENT_SESSION [386]
+compiler: unsupported syscall: ioctl$TE_IOCTL_CLOSE_CLIENT_SESSION due to missing const TE_IOCTL_CLOSE_CLIENT_SESSION [386]
+compiler: unsupported syscall: ioctl$TE_IOCTL_LAUNCH_OPERATION due to missing const TE_IOCTL_LAUNCH_OPERATION [386]
+compiler: unsupported syscall: ioctl$TE_IOCTL_SS_CMD due to missing const TE_IOCTL_SS_CMD [386]
+no-such-struct: te_service_id [amd64]
+no-such-struct: te_opensession [amd64]
+no-such-struct: te_closesession [amd64]
+no-such-struct: te_answer [amd64]
+no-such-struct: te_launchop [amd64]
+no-such-struct: te_operation [amd64]
+no-such-struct: te_int_mem_union [amd64]
+no-such-struct: te_mem [amd64]
+no-such-struct: te_oper_param [amd64]
diff --git a/sys/linux/dev_uhid.txt.warn b/sys/linux/dev_uhid.txt.warn
index ad033789e..c67ec7daa 100644
--- a/sys/linux/dev_uhid.txt.warn
+++ b/sys/linux/dev_uhid.txt.warn
@@ -1 +1 @@
-struct uhid_req: no corresponding struct in kernel
+no-such-struct: uhid_req
diff --git a/sys/linux/dev_usbmon.txt.warn b/sys/linux/dev_usbmon.txt.warn
index e69c5509a..872d7edb4 100644
--- a/sys/linux/dev_usbmon.txt.warn
+++ b/sys/linux/dev_usbmon.txt.warn
@@ -1 +1 @@
-struct mon_bin_union: no corresponding struct in kernel
+no-such-struct: mon_bin_union
diff --git a/sys/linux/dev_vfio.txt.warn b/sys/linux/dev_vfio.txt.warn
new file mode 100644
index 000000000..db622b3c8
--- /dev/null
+++ b/sys/linux/dev_vfio.txt.warn
@@ -0,0 +1 @@
+bad-struct-size: vfio_iommu_type1_info: syz=24 kernel=20 [386]
diff --git a/sys/linux/dev_video4linux.txt.warn b/sys/linux/dev_video4linux.txt.warn
index 12fd25cf4..bf3103646 100644
--- a/sys/linux/dev_video4linux.txt.warn
+++ b/sys/linux/dev_video4linux.txt.warn
@@ -1,16 +1,31 @@
-struct v4l2_format_fmt: no corresponding struct in kernel
-struct v4l2_buffer_union: no corresponding struct in kernel
-struct v4l2_plane_union: no corresponding struct in kernel
-struct v4l2_framebuffer_union: no corresponding struct in kernel
-struct v4l2_streamparm_union: no corresponding struct in kernel
-struct v4l2_querymenu_union: no corresponding struct in kernel
-struct v4l2_ext_u: no corresponding struct in kernel
-struct v4l2_frmsizeenum_union: no corresponding struct in kernel
-struct v4l2_frmivalenum_union: no corresponding struct in kernel
-struct v4l2_dbg_match_union: no corresponding struct in kernel
-struct v4l2_dv_timings_union: no corresponding struct in kernel
-struct v4l2_event_union: no corresponding struct in kernel
-struct v4l2_event_ctrl_union: no corresponding struct in kernel
-struct v4l2_decoder_cmd_u: no corresponding struct in kernel
-struct v4l2_decoder_cmd_start: no corresponding struct in kernel
-struct v4l2_dv_timings_cap_u: no corresponding struct in kernel
+no-such-struct: v4l2_format_fmt
+no-such-struct: v4l2_buffer_union
+no-such-struct: v4l2_plane_union
+no-such-struct: v4l2_framebuffer_union
+no-such-struct: v4l2_streamparm_union
+no-such-struct: v4l2_querymenu_union
+no-such-struct: v4l2_ext_u
+no-such-struct: v4l2_frmsizeenum_union
+no-such-struct: v4l2_frmivalenum_union
+no-such-struct: v4l2_dbg_match_union
+no-such-struct: v4l2_dv_timings_union
+bad-struct-size: v4l2_event: syz=128 kernel=120 [386]
+bad-field-offset: v4l2_event.u: syz=8 kernel=4 [386]
+bad-field-offset: v4l2_event.pending: syz=72 kernel=68 [386]
+bad-field-offset: v4l2_event.sequence: syz=76 kernel=72 [386]
+bad-field-offset: v4l2_event.timestamp: syz=80 kernel=76 [386]
+bad-field-offset: v4l2_event.id: syz=88 kernel=84 [386]
+bad-field-offset: v4l2_event.reserved: syz=92 kernel=88 [386]
+no-such-struct: v4l2_event_union
+bad-struct-size: v4l2_event_ctrl: syz=40 kernel=36 [386]
+no-such-struct: v4l2_event_ctrl_union
+no-such-struct: v4l2_decoder_cmd_u
+no-such-struct: v4l2_decoder_cmd_start
+no-such-struct: v4l2_dv_timings_cap_u
+bad-struct-size: v4l2_standard: syz=72 kernel=64 [386]
+bad-field-offset: v4l2_standard.id: syz=8 kernel=4 [386]
+bad-field-offset: v4l2_standard.name: syz=16 kernel=12 [386]
+bad-field-offset: v4l2_standard.frameperiod: syz=40 kernel=36 [386]
+bad-field-offset: v4l2_standard.framelines: syz=48 kernel=44 [386]
+bad-field-offset: v4l2_standard.reserved: syz=52 kernel=48 [386]
+bad-struct-size: v4l2_input: syz=80 kernel=76 [386]
diff --git a/sys/linux/devio.txt.warn b/sys/linux/devio.txt.warn
index 7ab7dcc4e..fd4e0a564 100644
--- a/sys/linux/devio.txt.warn
+++ b/sys/linux/devio.txt.warn
@@ -1,12 +1,15 @@
-struct usbdevfs_ep: no corresponding struct in kernel
-struct usbdevfs_urb_control: no corresponding struct in kernel
-struct usbdevfs_urb_bulk: no corresponding struct in kernel
-struct usbdevfs_urb_interrupt: no corresponding struct in kernel
-field usbdevfs_ioctl.usbdevfs_disconnect/ifno: bad size: syz=16 kernel=4
-field usbdevfs_ioctl.usbdevfs_connect/ioctl_code: bad offset: syz=16 kernel=4
-field usbdevfs_ioctl.usbdevfs_connect/ioctl_code: bad size: syz=16 kernel=4
-field usbdevfs_ioctl.usbdevfs_driver/data: bad offset: syz=32 kernel=8
-field usbdevfs_ioctl.usbdevfs_driver/data: bad size: syz=16 kernel=8
-struct usbdevfs_ioctl_disconnect: no corresponding struct in kernel
-struct usbdevfs_ioctl_connect: no corresponding struct in kernel
-struct usbdevfs_ioctl_driver: no corresponding struct in kernel
+no-such-struct: usbdevfs_ep
+no-such-struct: usbdevfs_urb_control
+no-such-struct: usbdevfs_urb_bulk
+no-such-struct: usbdevfs_urb_interrupt
+bad-field-size: usbdevfs_ioctl.usbdevfs_disconnect/ifno: syz=12 kernel=4 [386]
+bad-field-size: usbdevfs_ioctl.usbdevfs_disconnect/ifno: syz=16 kernel=4 [amd64]
+bad-field-size: usbdevfs_ioctl.usbdevfs_connect/ioctl_code: syz=12 kernel=4 [386]
+bad-field-offset: usbdevfs_ioctl.usbdevfs_connect/ioctl_code: syz=16 kernel=4 [amd64]
+bad-field-size: usbdevfs_ioctl.usbdevfs_driver/data: syz=12 kernel=4 [386]
+bad-field-size: usbdevfs_ioctl.usbdevfs_driver/data: syz=16 kernel=8 [amd64]
+bad-field-offset: usbdevfs_ioctl.usbdevfs_driver/data: syz=24 kernel=8 [386]
+bad-field-offset: usbdevfs_ioctl.usbdevfs_driver/data: syz=32 kernel=8 [amd64]
+no-such-struct: usbdevfs_ioctl_disconnect
+no-such-struct: usbdevfs_ioctl_connect
+no-such-struct: usbdevfs_ioctl_driver
diff --git a/sys/linux/filesystem.txt.warn b/sys/linux/filesystem.txt.warn
index 75de256bb..129074734 100644
--- a/sys/linux/filesystem.txt.warn
+++ b/sys/linux/filesystem.txt.warn
@@ -1,6 +1,6 @@
-struct nbd_filename: no corresponding struct in kernel
-struct loop_filename: no corresponding struct in kernel
-struct fs_image_segment: no corresponding struct in kernel
-struct fs_opt: no corresponding struct in kernel
-struct fs_opt_nodelim: no corresponding struct in kernel
-struct uuid_str: no corresponding struct in kernel
+no-such-struct: nbd_filename
+no-such-struct: loop_filename
+no-such-struct: fs_image_segment
+no-such-struct: fs_opt
+no-such-struct: fs_opt_nodelim
+no-such-struct: uuid_str
diff --git a/sys/linux/fs_ext4.txt.warn b/sys/linux/fs_ext4.txt.warn
new file mode 100644
index 000000000..d4c2c5104
--- /dev/null
+++ b/sys/linux/fs_ext4.txt.warn
@@ -0,0 +1,7 @@
+bad-struct-size: ext4_new_group_input: syz=40 kernel=36 [386]
+bad-field-offset: ext4_new_group_input.block_bitmap: syz=8 kernel=4 [386]
+bad-field-offset: ext4_new_group_input.inode_bitmap: syz=16 kernel=12 [386]
+bad-field-offset: ext4_new_group_input.inode_table: syz=24 kernel=20 [386]
+bad-field-offset: ext4_new_group_input.blocks_count: syz=32 kernel=28 [386]
+bad-field-offset: ext4_new_group_input.reserved_blocks: syz=36 kernel=32 [386]
+bad-field-offset: ext4_new_group_input.unused: syz=38 kernel=34 [386]
diff --git a/sys/linux/fs_ioctl.txt.warn b/sys/linux/fs_ioctl.txt.warn
new file mode 100644
index 000000000..06b898c71
--- /dev/null
+++ b/sys/linux/fs_ioctl.txt.warn
@@ -0,0 +1,6 @@
+bad-struct-size: space_resv: syz=48 kernel=44 [386]
+bad-field-offset: space_resv.l_start: syz=8 kernel=4 [386]
+bad-field-offset: space_resv.l_len: syz=16 kernel=12 [386]
+bad-field-offset: space_resv.l_sysid: syz=24 kernel=20 [386]
+bad-field-offset: space_resv.l_pid: syz=28 kernel=24 [386]
+bad-field-offset: space_resv.l_pad: syz=32 kernel=28 [386]
diff --git a/sys/linux/fscrypt.txt.warn b/sys/linux/fscrypt.txt.warn
index 200c08a22..2b501a25b 100644
--- a/sys/linux/fscrypt.txt.warn
+++ b/sys/linux/fscrypt.txt.warn
@@ -1,15 +1,15 @@
-struct fscrypt_policy_v1: bad number of fields: syz=4 kernel=5
-field fscrypt_policy_v1.modes/contents_encryption_mode: bad size: syz=2 kernel=1
-field fscrypt_policy_v1.flags/filenames_encryption_mode: bad offset: syz=3 kernel=2
-field fscrypt_policy_v1.master_key_descriptor/flags: bad offset: syz=4 kernel=3
-field fscrypt_policy_v1.master_key_descriptor/flags: bad size: syz=8 kernel=1
-struct fscrypt_policy_v2: bad number of fields: syz=5 kernel=6
-field fscrypt_policy_v2.modes/contents_encryption_mode: bad size: syz=2 kernel=1
-field fscrypt_policy_v2.flags/filenames_encryption_mode: bad offset: syz=3 kernel=2
-field fscrypt_policy_v2.reserved/flags: bad offset: syz=4 kernel=3
-field fscrypt_policy_v2.reserved/flags: bad size: syz=4 kernel=1
-field fscrypt_policy_v2.master_key_identifier/__reserved: bad offset: syz=8 kernel=4
-field fscrypt_policy_v2.master_key_identifier/__reserved: bad size: syz=16 kernel=4
-struct fscrypt_policy_modes: no corresponding struct in kernel
-struct fscrypt_policy_mode_t: no corresponding struct in kernel
-struct fscrypt_key_specifier_payload: no corresponding struct in kernel
+bad-field-number: fscrypt_policy_v1: syz=4 kernel=5
+bad-field-size: fscrypt_policy_v1.modes/contents_encryption_mode: syz=2 kernel=1
+bad-field-offset: fscrypt_policy_v1.flags/filenames_encryption_mode: syz=3 kernel=2
+bad-field-offset: fscrypt_policy_v1.master_key_descriptor/flags: syz=4 kernel=3
+bad-field-size: fscrypt_policy_v1.master_key_descriptor/flags: syz=8 kernel=1
+bad-field-number: fscrypt_policy_v2: syz=5 kernel=6
+bad-field-size: fscrypt_policy_v2.modes/contents_encryption_mode: syz=2 kernel=1
+bad-field-offset: fscrypt_policy_v2.flags/filenames_encryption_mode: syz=3 kernel=2
+bad-field-size: fscrypt_policy_v2.reserved/flags: syz=4 kernel=1
+bad-field-offset: fscrypt_policy_v2.reserved/flags: syz=4 kernel=3
+bad-field-size: fscrypt_policy_v2.master_key_identifier/__reserved: syz=16 kernel=4
+bad-field-offset: fscrypt_policy_v2.master_key_identifier/__reserved: syz=8 kernel=4
+no-such-struct: fscrypt_policy_modes
+no-such-struct: fscrypt_policy_mode_t
+no-such-struct: fscrypt_key_specifier_payload
diff --git a/sys/linux/fuse.txt.warn b/sys/linux/fuse.txt.warn
index 485b4a192..32616234a 100644
--- a/sys/linux/fuse.txt.warn
+++ b/sys/linux/fuse.txt.warn
@@ -1,3 +1,3 @@
-struct fuse_notify: no corresponding struct in kernel
-struct fuse_out: no corresponding struct in kernel
-struct fuse_create_open_out: no corresponding struct in kernel
+no-such-struct: fuse_notify
+no-such-struct: fuse_out
+no-such-struct: fuse_create_open_out
diff --git a/sys/linux/hafnium.txt.warn b/sys/linux/hafnium.txt.warn
index 09d363503..dcc824331 100644
--- a/sys/linux/hafnium.txt.warn
+++ b/sys/linux/hafnium.txt.warn
@@ -1 +1 @@
-struct sockaddr_hf: no corresponding struct in kernel
+no-such-struct: sockaddr_hf
diff --git a/sys/linux/ipc.txt.warn b/sys/linux/ipc.txt.warn
new file mode 100644
index 000000000..793a6022f
--- /dev/null
+++ b/sys/linux/ipc.txt.warn
@@ -0,0 +1,52 @@
+compiler: unsupported syscall: semop due to missing const __NR_semop [386]
+compiler: unsupported syscall: semtimedop due to missing const __NR_semtimedop [386]
+bad-struct-size: ipc_perm: syz=28 kernel=16 [386]
+bad-field-size: ipc_perm.uid: syz=4 kernel=2 [386]
+bad-field-size: ipc_perm.gid: syz=4 kernel=2 [386]
+bad-field-offset: ipc_perm.gid: syz=8 kernel=6 [386]
+bad-field-offset: ipc_perm.cuid: syz=12 kernel=8 [386]
+bad-field-size: ipc_perm.cuid: syz=4 kernel=2 [386]
+bad-field-offset: ipc_perm.cgid: syz=16 kernel=10 [386]
+bad-field-size: ipc_perm.cgid: syz=4 kernel=2 [386]
+bad-field-offset: ipc_perm.mode: syz=20 kernel=12 [386]
+bad-field-size: ipc_perm.mode: syz=4 kernel=2 [386]
+bad-field-offset: ipc_perm.seq: syz=24 kernel=14 [386]
+bad-struct-size: msqid_ds: syz=72 kernel=56 [386]
+bad-field-size: msqid_ds.msg_perm: syz=28 kernel=16 [386]
+bad-field-offset: msqid_ds.msg_first: syz=28 kernel=16 [386]
+bad-field-offset: msqid_ds.msg_last: syz=32 kernel=20 [386]
+bad-field-offset: msqid_ds.msg_stime: syz=36 kernel=24 [386]
+bad-field-offset: msqid_ds.msg_rtime: syz=40 kernel=28 [386]
+bad-field-offset: msqid_ds.msg_ctime: syz=44 kernel=32 [386]
+bad-field-offset: msqid_ds.msg_lcbytes: syz=48 kernel=36 [386]
+bad-field-offset: msqid_ds.msg_lqbytes: syz=52 kernel=40 [386]
+bad-field-offset: msqid_ds.msg_cbytes: syz=56 kernel=44 [386]
+bad-field-offset: msqid_ds.msg_qnum: syz=58 kernel=46 [386]
+bad-field-offset: msqid_ds.msg_qbytes: syz=60 kernel=48 [386]
+bad-field-size: msqid_ds.msg_lspid: syz=4 kernel=2 [386]
+bad-field-offset: msqid_ds.msg_lspid: syz=64 kernel=50 [386]
+bad-field-size: msqid_ds.msg_lrpid: syz=4 kernel=2 [386]
+bad-field-offset: msqid_ds.msg_lrpid: syz=68 kernel=52 [386]
+bad-struct-size: shmid_ds: syz=64 kernel=48 [386]
+bad-field-size: shmid_ds.shm_perm: syz=28 kernel=16 [386]
+bad-field-offset: shmid_ds.shm_segsz: syz=28 kernel=16 [386]
+bad-field-offset: shmid_ds.shm_atime: syz=32 kernel=20 [386]
+bad-field-offset: shmid_ds.shm_dtime: syz=36 kernel=24 [386]
+bad-field-offset: shmid_ds.shm_ctime: syz=40 kernel=28 [386]
+bad-field-size: shmid_ds.shm_cpid: syz=4 kernel=2 [386]
+bad-field-offset: shmid_ds.shm_cpid: syz=44 kernel=32 [386]
+bad-field-size: shmid_ds.shm_lpid: syz=4 kernel=2 [386]
+bad-field-offset: shmid_ds.shm_lpid: syz=48 kernel=34 [386]
+bad-field-offset: shmid_ds.shm_nattch: syz=52 kernel=36 [386]
+bad-field-offset: shmid_ds.shm_unused: syz=54 kernel=38 [386]
+bad-field-offset: shmid_ds.shm_unused2: syz=56 kernel=40 [386]
+bad-field-offset: shmid_ds.shm_unused3: syz=60 kernel=44 [386]
+bad-struct-size: semid_ds: syz=56 kernel=44 [386]
+bad-field-size: semid_ds.sem_perm: syz=28 kernel=16 [386]
+bad-field-offset: semid_ds.sem_otime: syz=28 kernel=16 [386]
+bad-field-offset: semid_ds.sem_ctime: syz=32 kernel=20 [386]
+bad-field-offset: semid_ds.sem_base: syz=36 kernel=24 [386]
+bad-field-offset: semid_ds.sem_pending: syz=40 kernel=28 [386]
+bad-field-offset: semid_ds.sem_pending_last: syz=44 kernel=32 [386]
+bad-field-offset: semid_ds.undo: syz=48 kernel=36 [386]
+bad-field-offset: semid_ds.sem_nsems: syz=52 kernel=40 [386]
diff --git a/sys/linux/ipvs.txt.warn b/sys/linux/ipvs.txt.warn
index 11dddf92d..b9f95c3ee 100644
--- a/sys/linux/ipvs.txt.warn
+++ b/sys/linux/ipvs.txt.warn
@@ -1 +1 @@
-struct ip_vs_svcdest_user: no corresponding struct in kernel
+no-such-struct: ip_vs_svcdest_user
diff --git a/sys/linux/key.txt.warn b/sys/linux/key.txt.warn
index d1919cadf..fa94b8728 100644
--- a/sys/linux/key.txt.warn
+++ b/sys/linux/key.txt.warn
@@ -1,3 +1,3 @@
-struct key_desc: no corresponding struct in kernel
-struct key_restriction_keyring: no corresponding struct in kernel
-struct key_restriction_keyring_chain: no corresponding struct in kernel
+no-such-struct: key_desc
+no-such-struct: key_restriction_keyring
+no-such-struct: key_restriction_keyring_chain
diff --git a/sys/linux/mptcp.txt.warn b/sys/linux/mptcp.txt.warn
index ffc5ac507..adcd64b80 100644
--- a/sys/linux/mptcp.txt.warn
+++ b/sys/linux/mptcp.txt.warn
@@ -1,4 +1,4 @@
-struct mptcp_mp_join_option: no corresponding struct in kernel
-struct mptcp_syn_option: no corresponding struct in kernel
-struct mptcp_synack_option: no corresponding struct in kernel
-struct mptcp_mp_fclose_option: no corresponding struct in kernel
+no-such-struct: mptcp_mp_join_option
+no-such-struct: mptcp_syn_option
+no-such-struct: mptcp_synack_option
+no-such-struct: mptcp_mp_fclose_option
diff --git a/sys/linux/netfilter.txt.warn b/sys/linux/netfilter.txt.warn
index 2256461fd..41ca06477 100644
--- a/sys/linux/netfilter.txt.warn
+++ b/sys/linux/netfilter.txt.warn
@@ -1,62 +1,83 @@
-struct nf_inet_addr: no corresponding struct in kernel
-struct nf_conntrack_man_proto: no corresponding struct in kernel
-struct xt_entry_match: bad number of fields: syz=3 kernel=2
-field xt_entry_match.match_size/u: bad size: syz=2 kernel=32
-field xt_entry_match.name/data: bad offset: syz=2 kernel=32
-field xt_entry_match.name/data: bad size: syz=29 kernel=0
-struct xt_entry_match_t: no corresponding struct in kernel
-struct xt_bpf_info_v1: bad number of fields: syz=3 kernel=5
-field xt_bpf_info_v1.bytecode/mode: bad size: syz=528 kernel=2
-field xt_bpf_info_v1.pinned/bpf_program_num_elem: bad offset: syz=528 kernel=2
-field xt_bpf_info_v1.pinned/bpf_program_num_elem: bad size: syz=528 kernel=2
-field xt_bpf_info_v1.fd: bad offset: syz=1056 kernel=4
-field xt_bpf_info_v1.fd: bad size: syz=8 kernel=4
-struct xt_bpf_info_bytecode: no corresponding struct in kernel
-struct xt_bpf_info_pinned: no corresponding struct in kernel
-struct xt_bpf_info_fd: no corresponding struct in kernel
-struct xt_conntrack_mtinfo_common: no corresponding struct in kernel
-struct xt_conntrack_mtinfo1: bad number of fields: syz=3 kernel=19
-field xt_conntrack_mtinfo1.common/origsrc_addr: bad size: syz=150 kernel=16
-field xt_conntrack_mtinfo1.state_mask/origsrc_mask: bad offset: syz=150 kernel=16
-field xt_conntrack_mtinfo1.state_mask/origsrc_mask: bad size: syz=1 kernel=16
-field xt_conntrack_mtinfo1.status_mask/origdst_addr: bad offset: syz=151 kernel=32
-field xt_conntrack_mtinfo1.status_mask/origdst_addr: bad size: syz=1 kernel=16
-struct xt_conntrack_mtinfo2: bad number of fields: syz=3 kernel=19
-field xt_conntrack_mtinfo2.common/origsrc_addr: bad size: syz=150 kernel=16
-field xt_conntrack_mtinfo2.state_mask/origsrc_mask: bad offset: syz=150 kernel=16
-field xt_conntrack_mtinfo2.state_mask/origsrc_mask: bad size: syz=2 kernel=16
-field xt_conntrack_mtinfo2.status_mask/origdst_addr: bad offset: syz=152 kernel=32
-field xt_conntrack_mtinfo2.status_mask/origdst_addr: bad size: syz=2 kernel=16
-struct xt_conntrack_mtinfo3: bad number of fields: syz=7 kernel=23
-field xt_conntrack_mtinfo3.common/origsrc_addr: bad size: syz=150 kernel=16
-field xt_conntrack_mtinfo3.state_mask/origsrc_mask: bad offset: syz=150 kernel=16
-field xt_conntrack_mtinfo3.state_mask/origsrc_mask: bad size: syz=2 kernel=16
-field xt_conntrack_mtinfo3.status_mask/origdst_addr: bad offset: syz=152 kernel=32
-field xt_conntrack_mtinfo3.status_mask/origdst_addr: bad size: syz=2 kernel=16
-field xt_conntrack_mtinfo3.origsrc_port_high/origdst_mask: bad offset: syz=154 kernel=48
-field xt_conntrack_mtinfo3.origsrc_port_high/origdst_mask: bad size: syz=2 kernel=16
-field xt_conntrack_mtinfo3.origdst_port_high/replsrc_addr: bad offset: syz=156 kernel=64
-field xt_conntrack_mtinfo3.origdst_port_high/replsrc_addr: bad size: syz=2 kernel=16
-field xt_conntrack_mtinfo3.replsrc_port_high/replsrc_mask: bad offset: syz=158 kernel=80
-field xt_conntrack_mtinfo3.replsrc_port_high/replsrc_mask: bad size: syz=2 kernel=16
-field xt_conntrack_mtinfo3.repldst_port_high/repldst_addr: bad offset: syz=160 kernel=96
-field xt_conntrack_mtinfo3.repldst_port_high/repldst_addr: bad size: syz=2 kernel=16
-struct xt_comment_info: no corresponding struct in kernel
-struct xt_statistic_info: bad number of fields: syz=6 kernel=4
-field xt_statistic_info.every/u: bad size: syz=4 kernel=12
-field xt_statistic_info.packet/master: bad offset: syz=8 kernel=16
-field xt_statistic_info.packet/master: bad size: syz=4 kernel=8
-struct xt_recent_mtinfo: no corresponding struct in kernel
-struct xt_policy_elem: bad number of fields: syz=10 kernel=7
-field xt_policy_elem.saddr/: bad size: syz=16 kernel=64
-field xt_policy_elem.smask/spi: bad offset: syz=16 kernel=64
-field xt_policy_elem.smask/spi: bad size: syz=16 kernel=4
-field xt_policy_elem.daddr/reqid: bad offset: syz=32 kernel=68
-field xt_policy_elem.daddr/reqid: bad size: syz=16 kernel=4
-field xt_policy_elem.dmask/proto: bad offset: syz=48 kernel=72
-field xt_policy_elem.dmask/proto: bad size: syz=16 kernel=1
-field xt_policy_elem.spi/mode: bad offset: syz=64 kernel=73
-field xt_policy_elem.spi/mode: bad size: syz=4 kernel=1
-field xt_policy_elem.reqid/match: bad offset: syz=68 kernel=74
-field xt_policy_elem.reqid/match: bad size: syz=4 kernel=1
-field xt_policy_elem.proto/invert: bad offset: syz=72 kernel=75
+no-such-struct: nf_inet_addr
+no-such-struct: nf_conntrack_man_proto
+bad-field-number: xt_entry_match: syz=3 kernel=2
+bad-field-size: xt_entry_match.match_size/u: syz=2 kernel=32
+bad-field-offset: xt_entry_match.name/data: syz=2 kernel=32
+bad-field-size: xt_entry_match.name/data: syz=29 kernel=0
+no-such-struct: xt_entry_match_t
+bad-struct-size: xt_cgroup_info_v1: syz=4108 kernel=4112 [386]
+bad-struct-size: xt_rateest_match_info: syz=60 kernel=72 [386]
+bad-field-offset: xt_rateest_match_info.est1: syz=52 kernel=56 [386]
+bad-field-offset: xt_rateest_match_info.est2: syz=56 kernel=64 [386]
+bad-struct-size: xt_bpf_info: syz=520 kernel=528 [386]
+bad-field-offset: xt_bpf_info.filter: syz=516 kernel=520 [386]
+bad-field-number: xt_bpf_info_v1: syz=3 kernel=5
+bad-struct-size: xt_bpf_info_v1: syz=524 kernel=528 [386]
+bad-field-size: xt_bpf_info_v1.bytecode/mode: syz=524 kernel=2 [386]
+bad-field-size: xt_bpf_info_v1.bytecode/mode: syz=528 kernel=2 [amd64]
+bad-field-size: xt_bpf_info_v1.pinned/bpf_program_num_elem: syz=524 kernel=2 [386]
+bad-field-size: xt_bpf_info_v1.pinned/bpf_program_num_elem: syz=528 kernel=2 [amd64]
+bad-field-offset: xt_bpf_info_v1.fd: syz=1048 kernel=4 [386]
+bad-field-offset: xt_bpf_info_v1.fd: syz=1056 kernel=4 [amd64]
+bad-field-size: xt_bpf_info_v1.fd: syz=8 kernel=4
+no-such-struct: xt_bpf_info_bytecode
+no-such-struct: xt_bpf_info_pinned
+no-such-struct: xt_bpf_info_fd
+bad-struct-size: xt_connlimit_info: syz=28 kernel=32 [386]
+no-such-struct: xt_conntrack_mtinfo_common
+bad-field-number: xt_conntrack_mtinfo1: syz=3 kernel=19
+bad-field-size: xt_conntrack_mtinfo1.common/origsrc_addr: syz=150 kernel=16
+bad-field-size: xt_conntrack_mtinfo1.state_mask/origsrc_mask: syz=1 kernel=16
+bad-field-offset: xt_conntrack_mtinfo1.state_mask/origsrc_mask: syz=150 kernel=16
+bad-field-size: xt_conntrack_mtinfo1.status_mask/origdst_addr: syz=1 kernel=16
+bad-field-offset: xt_conntrack_mtinfo1.status_mask/origdst_addr: syz=151 kernel=32
+bad-field-number: xt_conntrack_mtinfo2: syz=3 kernel=19
+bad-field-size: xt_conntrack_mtinfo2.common/origsrc_addr: syz=150 kernel=16
+bad-field-offset: xt_conntrack_mtinfo2.state_mask/origsrc_mask: syz=150 kernel=16
+bad-field-size: xt_conntrack_mtinfo2.state_mask/origsrc_mask: syz=2 kernel=16
+bad-field-offset: xt_conntrack_mtinfo2.status_mask/origdst_addr: syz=152 kernel=32
+bad-field-size: xt_conntrack_mtinfo2.status_mask/origdst_addr: syz=2 kernel=16
+bad-field-number: xt_conntrack_mtinfo3: syz=7 kernel=23
+bad-field-size: xt_conntrack_mtinfo3.common/origsrc_addr: syz=150 kernel=16
+bad-field-offset: xt_conntrack_mtinfo3.state_mask/origsrc_mask: syz=150 kernel=16
+bad-field-size: xt_conntrack_mtinfo3.state_mask/origsrc_mask: syz=2 kernel=16
+bad-field-offset: xt_conntrack_mtinfo3.status_mask/origdst_addr: syz=152 kernel=32
+bad-field-size: xt_conntrack_mtinfo3.status_mask/origdst_addr: syz=2 kernel=16
+bad-field-offset: xt_conntrack_mtinfo3.origsrc_port_high/origdst_mask: syz=154 kernel=48
+bad-field-size: xt_conntrack_mtinfo3.origsrc_port_high/origdst_mask: syz=2 kernel=16
+bad-field-offset: xt_conntrack_mtinfo3.origdst_port_high/replsrc_addr: syz=156 kernel=64
+bad-field-size: xt_conntrack_mtinfo3.origdst_port_high/replsrc_addr: syz=2 kernel=16
+bad-field-offset: xt_conntrack_mtinfo3.replsrc_port_high/replsrc_mask: syz=158 kernel=80
+bad-field-size: xt_conntrack_mtinfo3.replsrc_port_high/replsrc_mask: syz=2 kernel=16
+bad-field-offset: xt_conntrack_mtinfo3.repldst_port_high/repldst_addr: syz=160 kernel=96
+bad-field-size: xt_conntrack_mtinfo3.repldst_port_high/repldst_addr: syz=2 kernel=16
+bad-struct-size: xt_set_info_match_v3: syz=48 kernel=32 [386]
+bad-field-size: xt_set_info_match_v3.packets: syz=16 kernel=12 [386]
+bad-field-offset: xt_set_info_match_v3.packets: syz=8 kernel=4 [386]
+bad-field-size: xt_set_info_match_v3.bytes: syz=16 kernel=12 [386]
+bad-field-offset: xt_set_info_match_v3.bytes: syz=24 kernel=16 [386]
+bad-field-offset: xt_set_info_match_v3.flags: syz=40 kernel=28 [386]
+bad-struct-size: xt_hashlimit_mtinfo1: syz=52 kernel=56 [386]
+bad-field-size: xt_hashlimit_mtinfo3.cfg: syz=48 kernel=44 [386]
+bad-struct-size: hashlimit_cfg3: syz=48 kernel=44 [386]
+no-such-struct: xt_comment_info
+bad-struct-size: xt_statistic_info: syz=20 kernel=24 [386]
+bad-field-number: xt_statistic_info: syz=6 kernel=4
+bad-field-size: xt_statistic_info.every/u: syz=4 kernel=12
+bad-field-size: xt_statistic_info.packet/master: syz=4 kernel=8 [amd64]
+bad-field-offset: xt_statistic_info.packet/master: syz=8 kernel=16
+no-such-struct: xt_recent_mtinfo
+bad-field-number: xt_policy_elem: syz=10 kernel=7
+bad-field-size: xt_policy_elem.saddr/: syz=16 kernel=64
+bad-field-size: xt_policy_elem.smask/spi: syz=16 kernel=4
+bad-field-offset: xt_policy_elem.smask/spi: syz=16 kernel=64
+bad-field-size: xt_policy_elem.daddr/reqid: syz=16 kernel=4
+bad-field-offset: xt_policy_elem.daddr/reqid: syz=32 kernel=68
+bad-field-size: xt_policy_elem.dmask/proto: syz=16 kernel=1
+bad-field-offset: xt_policy_elem.dmask/proto: syz=48 kernel=72
+bad-field-size: xt_policy_elem.spi/mode: syz=4 kernel=1
+bad-field-offset: xt_policy_elem.spi/mode: syz=64 kernel=73
+bad-field-size: xt_policy_elem.reqid/match: syz=4 kernel=1
+bad-field-offset: xt_policy_elem.reqid/match: syz=68 kernel=74
+bad-field-offset: xt_policy_elem.proto/invert: syz=72 kernel=75
+bad-struct-size: xt_string_info: syz=156 kernel=160 [386]
diff --git a/sys/linux/netfilter_arp.txt.warn b/sys/linux/netfilter_arp.txt.warn
index c36949046..cc8ec81f0 100644
--- a/sys/linux/netfilter_arp.txt.warn
+++ b/sys/linux/netfilter_arp.txt.warn
@@ -1,7 +1,7 @@
-struct arpt_entry_matches: no corresponding struct in kernel
-struct arpt_entry_underflow: no corresponding struct in kernel
-struct arpt_entry_underflow_matches: no corresponding struct in kernel
-struct arpt_arp_or_uncond: no corresponding struct in kernel
-struct arpt_devaddr: no corresponding struct in kernel
-struct arpt_devmask: no corresponding struct in kernel
-struct arpt_counters_info: no corresponding struct in kernel
+no-such-struct: arpt_entry_matches
+no-such-struct: arpt_entry_underflow
+no-such-struct: arpt_entry_underflow_matches
+no-such-struct: arpt_arp_or_uncond
+no-such-struct: arpt_devaddr
+no-such-struct: arpt_devmask
+no-such-struct: arpt_counters_info
diff --git a/sys/linux/netfilter_bridge.txt.warn b/sys/linux/netfilter_bridge.txt.warn
index a6829c78e..8b6ee5523 100644
--- a/sys/linux/netfilter_bridge.txt.warn
+++ b/sys/linux/netfilter_bridge.txt.warn
@@ -1,30 +1,44 @@
-struct ebt_replace_t: no corresponding struct in kernel
-len target entries refer to an array with variable-size elements (do you mean bytesize?)
-struct ebt_getinfo: no corresponding struct in kernel
-struct ebt_get_entries: no corresponding struct in kernel
-field ebt_entry_match.revision/match_size: bad size: syz=1 kernel=4
-field ebt_entry_match.match_size/data: bad offset: syz=36 kernel=40
-field ebt_entry_match.match_size/data: bad size: syz=4 kernel=0
-struct ebt_entry_match_t: no corresponding struct in kernel
-struct xt_padded: no corresponding struct in kernel
-struct ebt_among_info_offset: no corresponding struct in kernel
-struct ebt_ip_info: bad number of fields: syz=12 kernel=10
-field ebt_ip_info.sport_min/: bad size: syz=2 kernel=4
-field ebt_ip_info.sport_max/: bad offset: syz=22 kernel=24
-field ebt_ip_info.sport_max/: bad size: syz=2 kernel=4
-struct ebt_ip6_info: bad number of fields: syz=12 kernel=10
-field ebt_ip6_info.sport_min/: bad size: syz=2 kernel=4
-field ebt_ip6_info.sport_max/: bad offset: syz=70 kernel=72
-field ebt_ip6_info.sport_max/: bad size: syz=2 kernel=4
-struct ebt_entry_target: bad size: syz=120 kernel=40
-struct ebt_entry_target: bad size: syz=304 kernel=40
-struct ebt_entry_target: bad size: syz=48 kernel=40
-struct ebt_entry_target: bad size: syz=56 kernel=40
-struct ebt_entry_target: bad size: syz=72 kernel=40
-struct ebt_entry_target: bad size: syz=80 kernel=40
-field ebt_entry_target.data: bad size: syz=16 kernel=0
-field ebt_entry_target.data: bad size: syz=264 kernel=0
-field ebt_entry_target.data: bad size: syz=32 kernel=0
-field ebt_entry_target.data: bad size: syz=40 kernel=0
-field ebt_entry_target.data: bad size: syz=8 kernel=0
-field ebt_entry_target.data: bad size: syz=80 kernel=0
+no-such-struct: ebt_replace_t
+compiler: len target entries refer to an array with variable-size elements (do you mean bytesize?)
+no-such-struct: ebt_getinfo
+no-such-struct: ebt_get_entries
+bad-struct-size: ebt_entry_match: syz=40 kernel=36 [386]
+bad-field-size: ebt_entry_match.revision/match_size: syz=1 kernel=4
+bad-field-offset: ebt_entry_match.match_size/data: syz=36 kernel=40 [amd64]
+bad-field-size: ebt_entry_match.match_size/data: syz=4 kernel=0
+no-such-struct: ebt_entry_match_t
+no-such-struct: xt_padded
+no-such-struct: ebt_among_info_offset
+bad-field-number: ebt_ip_info: syz=12 kernel=10
+bad-field-size: ebt_ip_info.sport_min/: syz=2 kernel=4
+bad-field-size: ebt_ip_info.sport_max/: syz=2 kernel=4
+bad-field-offset: ebt_ip_info.sport_max/: syz=22 kernel=24
+bad-field-number: ebt_ip6_info: syz=12 kernel=10
+bad-field-size: ebt_ip6_info.sport_min/: syz=2 kernel=4
+bad-field-size: ebt_ip6_info.sport_max/: syz=2 kernel=4
+bad-field-offset: ebt_ip6_info.sport_max/: syz=70 kernel=72
+bad-struct-size: ebt_entry_target: syz=112 kernel=36 [386]
+bad-struct-size: ebt_entry_target: syz=120 kernel=40 [amd64]
+bad-struct-size: ebt_entry_target: syz=300 kernel=36 [386]
+bad-struct-size: ebt_entry_target: syz=304 kernel=40 [amd64]
+bad-struct-size: ebt_entry_target: syz=40 kernel=36 [386]
+bad-struct-size: ebt_entry_target: syz=44 kernel=36 [386]
+bad-struct-size: ebt_entry_target: syz=48 kernel=36 [386]
+bad-struct-size: ebt_entry_target: syz=48 kernel=40 [amd64]
+bad-struct-size: ebt_entry_target: syz=56 kernel=40 [amd64]
+bad-struct-size: ebt_entry_target: syz=60 kernel=36 [386]
+bad-struct-size: ebt_entry_target: syz=68 kernel=36 [386]
+bad-struct-size: ebt_entry_target: syz=72 kernel=36 [386]
+bad-struct-size: ebt_entry_target: syz=72 kernel=40 [amd64]
+bad-struct-size: ebt_entry_target: syz=80 kernel=40 [amd64]
+bad-field-size: ebt_entry_target.data: syz=12 kernel=0 [386]
+bad-field-size: ebt_entry_target.data: syz=16 kernel=0 [amd64]
+bad-field-size: ebt_entry_target.data: syz=24 kernel=0 [386]
+bad-field-size: ebt_entry_target.data: syz=264 kernel=0
+bad-field-size: ebt_entry_target.data: syz=32 kernel=0
+bad-field-size: ebt_entry_target.data: syz=36 kernel=0 [386]
+bad-field-size: ebt_entry_target.data: syz=4 kernel=0 [386]
+bad-field-size: ebt_entry_target.data: syz=40 kernel=0 [amd64]
+bad-field-size: ebt_entry_target.data: syz=76 kernel=0 [386]
+bad-field-size: ebt_entry_target.data: syz=8 kernel=0
+bad-field-size: ebt_entry_target.data: syz=80 kernel=0 [amd64]
diff --git a/sys/linux/netfilter_ipv4.txt.warn b/sys/linux/netfilter_ipv4.txt.warn
index b13aead8b..fe832eb57 100644
--- a/sys/linux/netfilter_ipv4.txt.warn
+++ b/sys/linux/netfilter_ipv4.txt.warn
@@ -1,4 +1,4 @@
-struct ipt_entry_underflow: no corresponding struct in kernel
-struct ipt_entry_underflow_matches: no corresponding struct in kernel
-struct ipt_ip_or_uncond: no corresponding struct in kernel
-struct xt_osf_info: no corresponding struct in kernel
+no-such-struct: ipt_entry_underflow
+no-such-struct: ipt_entry_underflow_matches
+no-such-struct: ipt_ip_or_uncond
+no-such-struct: xt_osf_info
diff --git a/sys/linux/netfilter_ipv6.txt.warn b/sys/linux/netfilter_ipv6.txt.warn
index 014b365fe..c6124f259 100644
--- a/sys/linux/netfilter_ipv6.txt.warn
+++ b/sys/linux/netfilter_ipv6.txt.warn
@@ -1,3 +1,3 @@
-struct ip6t_entry_underflow: no corresponding struct in kernel
-struct ip6t_entry_underflow_matches: no corresponding struct in kernel
-struct ip6t_ip6_or_uncond: no corresponding struct in kernel
+no-such-struct: ip6t_entry_underflow
+no-such-struct: ip6t_entry_underflow_matches
+no-such-struct: ip6t_ip6_or_uncond
diff --git a/sys/linux/netfilter_targets.txt.warn b/sys/linux/netfilter_targets.txt.warn
index 9c4f5d98b..7e461d330 100644
--- a/sys/linux/netfilter_targets.txt.warn
+++ b/sys/linux/netfilter_targets.txt.warn
@@ -1,15 +1,26 @@
-struct xt_target_t: no corresponding struct in kernel
-struct xt_hmark_info: bad number of fields: syz=11 kernel=9
-field xt_hmark_info.src_port_mask/port_mask: bad size: syz=2 kernel=4
-field xt_hmark_info.dst_port_mask/port_set: bad offset: syz=34 kernel=36
-field xt_hmark_info.dst_port_mask/port_set: bad size: syz=2 kernel=4
-field xt_hmark_info.src_port_set/flags: bad offset: syz=36 kernel=40
-field xt_hmark_info.src_port_set/flags: bad size: syz=2 kernel=4
-field xt_hmark_info.dst_port_set/proto_mask: bad offset: syz=38 kernel=44
-field xt_hmark_info.flags/hashrnd: bad offset: syz=40 kernel=48
-field xt_hmark_info.proto_mask/hmodulus: bad offset: syz=44 kernel=52
-field xt_hmark_info.proto_mask/hmodulus: bad size: syz=2 kernel=4
-field xt_hmark_info.hashrnd/hoffset: bad offset: syz=48 kernel=56
-struct xt_set_info_v0: bad number of fields: syz=5 kernel=2
-field xt_set_info_v0.flags/u: bad size: syz=24 kernel=28
-struct xt_synproxy_info: no corresponding struct in kernel
+no-such-struct: xt_target_t
+bad-struct-size: xt_tee_tginfo: syz=36 kernel=40 [386]
+bad-struct-size: xt_led_info: syz=36 kernel=40 [386]
+bad-struct-size: xt_rateest_target_info: syz=24 kernel=32 [386]
+bad-field-offset: xt_rateest_target_info.est: syz=20 kernel=24 [386]
+bad-struct-size: idletimer_tg_info: syz=36 kernel=40 [386]
+bad-struct-size: xt_ct_target_info: syz=32 kernel=40 [386]
+bad-field-offset: xt_ct_target_info.ct: syz=28 kernel=32 [386]
+bad-struct-size: xt_ct_target_info_v1: syz=64 kernel=72 [386]
+bad-field-offset: xt_ct_target_info_v1.ct: syz=60 kernel=64 [386]
+bad-field-number: xt_hmark_info: syz=11 kernel=9
+bad-field-size: xt_hmark_info.src_port_mask/port_mask: syz=2 kernel=4
+bad-field-size: xt_hmark_info.dst_port_mask/port_set: syz=2 kernel=4
+bad-field-offset: xt_hmark_info.dst_port_mask/port_set: syz=34 kernel=36
+bad-field-size: xt_hmark_info.src_port_set/flags: syz=2 kernel=4
+bad-field-offset: xt_hmark_info.src_port_set/flags: syz=36 kernel=40
+bad-field-offset: xt_hmark_info.dst_port_set/proto_mask: syz=38 kernel=44
+bad-field-offset: xt_hmark_info.flags/hashrnd: syz=40 kernel=48
+bad-field-size: xt_hmark_info.proto_mask/hmodulus: syz=2 kernel=4
+bad-field-offset: xt_hmark_info.proto_mask/hmodulus: syz=44 kernel=52
+bad-field-offset: xt_hmark_info.hashrnd/hoffset: syz=48 kernel=56
+bad-field-number: xt_set_info_v0: syz=5 kernel=2
+bad-field-size: xt_set_info_v0.flags/u: syz=24 kernel=28
+bad-struct-size: ip_set_counter_match0: syz=16 kernel=12 [386]
+bad-field-offset: ip_set_counter_match0.value: syz=8 kernel=4 [386]
+no-such-struct: xt_synproxy_info
diff --git a/sys/linux/perf.txt.warn b/sys/linux/perf.txt.warn
index bbd62ceb1..386188676 100644
--- a/sys/linux/perf.txt.warn
+++ b/sys/linux/perf.txt.warn
@@ -1,57 +1,57 @@
-struct perf_event_attr: bad number of fields: syz=50 kernel=52
-struct perf_event_attr: bad size: syz=112 kernel=120
-field perf_event_attr.config0/config: bad size: syz=1 kernel=8
-field perf_event_attr.config1/: bad offset: syz=9 kernel=16
-field perf_event_attr.config1/: bad size: syz=1 kernel=8
-field perf_event_attr.config2/sample_type: bad offset: syz=10 kernel=24
-field perf_event_attr.config2/sample_type: bad size: syz=1 kernel=8
-field perf_event_attr.config3/read_format: bad offset: syz=11 kernel=32
-field perf_event_attr.config3/read_format: bad size: syz=1 kernel=8
-field perf_event_attr.config4/disabled: bad bit size/offset: syz=0/0 kernel=1/0
-field perf_event_attr.config4/disabled: bad offset: syz=12 kernel=40
-field perf_event_attr.config4/disabled: bad size: syz=4 kernel=8
-field perf_event_attr.sample_freq/inherit: bad bit size/offset: syz=0/0 kernel=1/1
-field perf_event_attr.sample_freq/inherit: bad offset: syz=16 kernel=40
-field perf_event_attr.sample_type/pinned: bad bit size/offset: syz=0/0 kernel=1/2
-field perf_event_attr.sample_type/pinned: bad offset: syz=24 kernel=40
-field perf_event_attr.read_format/exclusive: bad bit size/offset: syz=0/0 kernel=1/3
-field perf_event_attr.read_format/exclusive: bad offset: syz=32 kernel=40
-field perf_event_attr.disabled/exclude_user: bad bit size/offset: syz=1/0 kernel=1/4
-field perf_event_attr.inherit/exclude_kernel: bad bit size/offset: syz=1/1 kernel=1/5
-field perf_event_attr.pinned/exclude_hv: bad bit size/offset: syz=1/2 kernel=1/6
-field perf_event_attr.exclusive/exclude_idle: bad bit size/offset: syz=1/3 kernel=1/7
-field perf_event_attr.exclude_user/mmap: bad bit size/offset: syz=1/4 kernel=1/8
-field perf_event_attr.exclude_kernel/comm: bad bit size/offset: syz=1/5 kernel=1/9
-field perf_event_attr.exclude_hv/freq: bad bit size/offset: syz=1/6 kernel=1/10
-field perf_event_attr.exclude_idle/inherit_stat: bad bit size/offset: syz=1/7 kernel=1/11
-field perf_event_attr.mmap/enable_on_exec: bad bit size/offset: syz=1/8 kernel=1/12
-field perf_event_attr.comm/task: bad bit size/offset: syz=1/9 kernel=1/13
-field perf_event_attr.freq/watermark: bad bit size/offset: syz=1/10 kernel=1/14
-field perf_event_attr.inherit_stat/precise_ip: bad bit size/offset: syz=1/11 kernel=2/15
-field perf_event_attr.enable_on_exec/mmap_data: bad bit size/offset: syz=1/12 kernel=1/17
-field perf_event_attr.task/sample_id_all: bad bit size/offset: syz=1/13 kernel=1/18
-field perf_event_attr.watermark/exclude_host: bad bit size/offset: syz=1/14 kernel=1/19
-field perf_event_attr.precise_ip/exclude_guest: bad bit size/offset: syz=2/15 kernel=1/20
-field perf_event_attr.mmap_data/exclude_callchain_kernel: bad bit size/offset: syz=1/17 kernel=1/21
-field perf_event_attr.sample_id_all/exclude_callchain_user: bad bit size/offset: syz=1/18 kernel=1/22
-field perf_event_attr.exclude_host/mmap2: bad bit size/offset: syz=1/19 kernel=1/23
-field perf_event_attr.exclude_guest/comm_exec: bad bit size/offset: syz=1/20 kernel=1/24
-field perf_event_attr.exclude_callchain_kernel/use_clockid: bad bit size/offset: syz=1/21 kernel=1/25
-field perf_event_attr.exclude_callchain_user/context_switch: bad bit size/offset: syz=1/22 kernel=1/26
-field perf_event_attr.mmap2/write_backward: bad bit size/offset: syz=1/23 kernel=1/27
-field perf_event_attr.comm_exec/namespaces: bad bit size/offset: syz=1/24 kernel=1/28
-field perf_event_attr.use_clockid/ksymbol: bad bit size/offset: syz=1/25 kernel=1/29
-field perf_event_attr.context_switch/bpf_event: bad bit size/offset: syz=1/26 kernel=1/30
-field perf_event_attr.write_backward/aux_output: bad bit size/offset: syz=1/27 kernel=1/31
-field perf_event_attr.namespaces/__reserved_1: bad bit size/offset: syz=1/28 kernel=32/32
-field perf_event_attr.__reserved_1/: bad bit size/offset: syz=35/29 kernel=0/0
-field perf_event_attr.__reserved_1/: bad offset: syz=40 kernel=48
-field perf_event_attr.__reserved_1/: bad size: syz=8 kernel=4
-field perf_event_attr.wakeup_events/bp_type: bad offset: syz=48 kernel=52
-field perf_event_attr.bp_type/: bad offset: syz=52 kernel=56
-field perf_event_attr.bp_type/: bad size: syz=4 kernel=8
-field perf_event_attr.bp_config/: bad offset: syz=56 kernel=64
-field perf_event_attr.bp_config/: bad size: syz=16 kernel=8
-struct perf_bp_config: no corresponding struct in kernel
-struct perf_bp: no corresponding struct in kernel
-struct perf_config_ext: no corresponding struct in kernel
+bad-struct-size: perf_event_attr: syz=112 kernel=120
+bad-field-number: perf_event_attr: syz=50 kernel=52
+bad-field-size: perf_event_attr.config0/config: syz=1 kernel=8
+bad-field-size: perf_event_attr.config1/: syz=1 kernel=8
+bad-field-offset: perf_event_attr.config1/: syz=9 kernel=16
+bad-field-size: perf_event_attr.config2/sample_type: syz=1 kernel=8
+bad-field-offset: perf_event_attr.config2/sample_type: syz=10 kernel=24
+bad-field-size: perf_event_attr.config3/read_format: syz=1 kernel=8
+bad-field-offset: perf_event_attr.config3/read_format: syz=11 kernel=32
+bad-bitfield: perf_event_attr.config4/disabled: size/offset: syz=0/0 kernel=1/0
+bad-field-offset: perf_event_attr.config4/disabled: syz=12 kernel=40
+bad-field-size: perf_event_attr.config4/disabled: syz=4 kernel=8
+bad-bitfield: perf_event_attr.sample_freq/inherit: size/offset: syz=0/0 kernel=1/1
+bad-field-offset: perf_event_attr.sample_freq/inherit: syz=16 kernel=40
+bad-bitfield: perf_event_attr.sample_type/pinned: size/offset: syz=0/0 kernel=1/2
+bad-field-offset: perf_event_attr.sample_type/pinned: syz=24 kernel=40
+bad-bitfield: perf_event_attr.read_format/exclusive: size/offset: syz=0/0 kernel=1/3
+bad-field-offset: perf_event_attr.read_format/exclusive: syz=32 kernel=40
+bad-bitfield: perf_event_attr.disabled/exclude_user: size/offset: syz=1/0 kernel=1/4
+bad-bitfield: perf_event_attr.inherit/exclude_kernel: size/offset: syz=1/1 kernel=1/5
+bad-bitfield: perf_event_attr.pinned/exclude_hv: size/offset: syz=1/2 kernel=1/6
+bad-bitfield: perf_event_attr.exclusive/exclude_idle: size/offset: syz=1/3 kernel=1/7
+bad-bitfield: perf_event_attr.exclude_user/mmap: size/offset: syz=1/4 kernel=1/8
+bad-bitfield: perf_event_attr.exclude_kernel/comm: size/offset: syz=1/5 kernel=1/9
+bad-bitfield: perf_event_attr.exclude_hv/freq: size/offset: syz=1/6 kernel=1/10
+bad-bitfield: perf_event_attr.exclude_idle/inherit_stat: size/offset: syz=1/7 kernel=1/11
+bad-bitfield: perf_event_attr.mmap/enable_on_exec: size/offset: syz=1/8 kernel=1/12
+bad-bitfield: perf_event_attr.comm/task: size/offset: syz=1/9 kernel=1/13
+bad-bitfield: perf_event_attr.freq/watermark: size/offset: syz=1/10 kernel=1/14
+bad-bitfield: perf_event_attr.inherit_stat/precise_ip: size/offset: syz=1/11 kernel=2/15
+bad-bitfield: perf_event_attr.enable_on_exec/mmap_data: size/offset: syz=1/12 kernel=1/17
+bad-bitfield: perf_event_attr.task/sample_id_all: size/offset: syz=1/13 kernel=1/18
+bad-bitfield: perf_event_attr.watermark/exclude_host: size/offset: syz=1/14 kernel=1/19
+bad-bitfield: perf_event_attr.precise_ip/exclude_guest: size/offset: syz=2/15 kernel=1/20
+bad-bitfield: perf_event_attr.mmap_data/exclude_callchain_kernel: size/offset: syz=1/17 kernel=1/21
+bad-bitfield: perf_event_attr.sample_id_all/exclude_callchain_user: size/offset: syz=1/18 kernel=1/22
+bad-bitfield: perf_event_attr.exclude_host/mmap2: size/offset: syz=1/19 kernel=1/23
+bad-bitfield: perf_event_attr.exclude_guest/comm_exec: size/offset: syz=1/20 kernel=1/24
+bad-bitfield: perf_event_attr.exclude_callchain_kernel/use_clockid: size/offset: syz=1/21 kernel=1/25
+bad-bitfield: perf_event_attr.exclude_callchain_user/context_switch: size/offset: syz=1/22 kernel=1/26
+bad-bitfield: perf_event_attr.mmap2/write_backward: size/offset: syz=1/23 kernel=1/27
+bad-bitfield: perf_event_attr.comm_exec/namespaces: size/offset: syz=1/24 kernel=1/28
+bad-bitfield: perf_event_attr.use_clockid/ksymbol: size/offset: syz=1/25 kernel=1/29
+bad-bitfield: perf_event_attr.context_switch/bpf_event: size/offset: syz=1/26 kernel=1/30
+bad-bitfield: perf_event_attr.write_backward/aux_output: size/offset: syz=1/27 kernel=1/31
+bad-bitfield: perf_event_attr.namespaces/__reserved_1: size/offset: syz=1/28 kernel=32/32
+bad-bitfield: perf_event_attr.__reserved_1/: size/offset: syz=35/29 kernel=0/0
+bad-field-offset: perf_event_attr.__reserved_1/: syz=40 kernel=48
+bad-field-size: perf_event_attr.__reserved_1/: syz=8 kernel=4
+bad-field-offset: perf_event_attr.wakeup_events/bp_type: syz=48 kernel=52
+bad-field-size: perf_event_attr.bp_type/: syz=4 kernel=8
+bad-field-offset: perf_event_attr.bp_type/: syz=52 kernel=56
+bad-field-size: perf_event_attr.bp_config/: syz=16 kernel=8
+bad-field-offset: perf_event_attr.bp_config/: syz=56 kernel=64
+no-such-struct: perf_bp_config
+no-such-struct: perf_bp
+no-such-struct: perf_config_ext
diff --git a/sys/linux/prctl.txt.warn b/sys/linux/prctl.txt.warn
new file mode 100644
index 000000000..8fea5a29c
--- /dev/null
+++ b/sys/linux/prctl.txt.warn
@@ -0,0 +1 @@
+bad-struct-size: prctl_mm_map: syz=104 kernel=100 [386]
diff --git a/sys/linux/smack.txt.warn b/sys/linux/smack.txt.warn
index ca0dfcb9b..d2f74efaf 100644
--- a/sys/linux/smack.txt.warn
+++ b/sys/linux/smack.txt.warn
@@ -1,3 +1,3 @@
-struct smackfs_cipso_category: no corresponding struct in kernel
-struct smack_ipv6: no corresponding struct in kernel
-struct smack_ipv4: no corresponding struct in kernel
+no-such-struct: smackfs_cipso_category
+no-such-struct: smack_ipv6
+no-such-struct: smack_ipv4
diff --git a/sys/linux/socket.txt.warn b/sys/linux/socket.txt.warn
index 222386baa..024058090 100644
--- a/sys/linux/socket.txt.warn
+++ b/sys/linux/socket.txt.warn
@@ -1,35 +1,40 @@
-struct sock_pair: no corresponding struct in kernel
-struct sockaddr: bad number of fields: syz=17 kernel=2
-field sockaddr.in/sa_family: bad size: syz=16 kernel=2
-field sockaddr.ax25/sa_data: bad offset: syz=16 kernel=2
-field sockaddr.ax25/sa_data: bad size: syz=16 kernel=14
-struct sockaddr_storage: no corresponding struct in kernel
-struct sockaddr_generic: no corresponding struct in kernel
-struct sockaddr_storage_generic: no corresponding struct in kernel
-struct send_msghdr: no corresponding struct in kernel
-struct msghdr_sock: no corresponding struct in kernel
-struct send_mmsghdr: no corresponding struct in kernel
-struct mmsghdr_sock: no corresponding struct in kernel
-struct recv_msghdr: no corresponding struct in kernel
-struct recv_mmsghdr: no corresponding struct in kernel
-struct cmsghdr_t: no corresponding struct in kernel
-struct cmsghdr_unaligned: no corresponding struct in kernel
-struct ifreq_dev_t: no corresponding struct in kernel
-struct ifr_ifru: no corresponding struct in kernel
-struct vlan_args: no corresponding struct in kernel
-struct vlan_args_u: no corresponding struct in kernel
-struct devname_mask: no corresponding struct in kernel
-struct ifs_ifsu: no corresponding struct in kernel
-field ifconf.req/ifc_len: bad size: syz=16 kernel=4
-field ifconf.buf/ifc_ifcu: bad offset: syz=16 kernel=8
-field ifconf.buf/ifc_ifcu: bad size: syz=16 kernel=8
-struct ifconf_buf: no corresponding struct in kernel
-struct ifconf_req: no corresponding struct in kernel
-struct brctl_arg: no corresponding struct in kernel
-struct brctl_arg_get: no corresponding struct in kernel
-struct brctl_arg_add_del: no corresponding struct in kernel
-struct brctl_arg_generic: no corresponding struct in kernel
-struct ethtool_flow_union: no corresponding struct in kernel
-struct ethtool_rx_ntuple: no corresponding struct in kernel
-struct ethtool_rx_ntuple_flow_spec: no corresponding struct in kernel
-struct ethtool_rx_ntuple_flow_spec_union: no corresponding struct in kernel
+compiler: unsupported syscall: accept due to missing const __NR_accept [386]
+no-such-struct: sock_pair
+bad-field-number: sockaddr: syz=17 kernel=2
+bad-field-size: sockaddr.in/sa_family: syz=16 kernel=2
+bad-field-size: sockaddr.ax25/sa_data: syz=16 kernel=14
+bad-field-offset: sockaddr.ax25/sa_data: syz=16 kernel=2
+no-such-struct: sockaddr_storage
+no-such-struct: sockaddr_generic
+no-such-struct: sockaddr_storage_generic
+no-such-struct: send_msghdr
+no-such-struct: msghdr_sock
+no-such-struct: send_mmsghdr
+no-such-struct: mmsghdr_sock
+no-such-struct: recv_msghdr
+no-such-struct: recv_mmsghdr
+no-such-struct: cmsghdr_t
+no-such-struct: cmsghdr_unaligned
+no-such-struct: ifreq_dev_t
+no-such-struct: ifr_ifru
+no-such-struct: vlan_args
+no-such-struct: vlan_args_u
+no-such-struct: devname_mask
+no-such-struct: ifs_ifsu
+bad-field-size: ifconf.req/ifc_len: syz=16 kernel=4 [amd64]
+bad-field-size: ifconf.req/ifc_len: syz=8 kernel=4 [386]
+bad-field-size: ifconf.buf/ifc_ifcu: syz=16 kernel=8 [amd64]
+bad-field-offset: ifconf.buf/ifc_ifcu: syz=8 kernel=4 [386]
+no-such-struct: ifconf_buf
+no-such-struct: ifconf_req
+no-such-struct: brctl_arg
+no-such-struct: brctl_arg_get
+no-such-struct: brctl_arg_add_del
+no-such-struct: brctl_arg_generic
+bad-struct-size: ethtool_rx_flow_spec: syz=168 kernel=160 [386]
+bad-field-offset: ethtool_rx_flow_spec.ring_cookie: syz=152 kernel=148 [386]
+bad-field-offset: ethtool_rx_flow_spec.location: syz=160 kernel=156 [386]
+no-such-struct: ethtool_flow_union
+no-such-struct: ethtool_rx_ntuple
+no-such-struct: ethtool_rx_ntuple_flow_spec
+no-such-struct: ethtool_rx_ntuple_flow_spec_union
diff --git a/sys/linux/socket_alg.txt.warn b/sys/linux/socket_alg.txt.warn
index 3e7994c95..6fa73bc61 100644
--- a/sys/linux/socket_alg.txt.warn
+++ b/sys/linux/socket_alg.txt.warn
@@ -1,8 +1,8 @@
-struct alg_name: no corresponding struct in kernel
-struct alg_aead_name: no corresponding struct in kernel
-struct alg_hash_name: no corresponding struct in kernel
-struct alg_skcipher_name: no corresponding struct in kernel
-struct alg_compress_name: no corresponding struct in kernel
-struct msghdr_alg: no corresponding struct in kernel
-struct cmsghdr_alg_op: no corresponding struct in kernel
-struct cmsghdr_alg_assoc: no corresponding struct in kernel
+no-such-struct: alg_name
+no-such-struct: alg_aead_name
+no-such-struct: alg_hash_name
+no-such-struct: alg_skcipher_name
+no-such-struct: alg_compress_name
+no-such-struct: msghdr_alg
+no-such-struct: cmsghdr_alg_op
+no-such-struct: cmsghdr_alg_assoc
diff --git a/sys/linux/socket_ax25.txt.warn b/sys/linux/socket_ax25.txt.warn
index affa73be6..e80df59f3 100644
--- a/sys/linux/socket_ax25.txt.warn
+++ b/sys/linux/socket_ax25.txt.warn
@@ -1,9 +1,9 @@
-struct ax25_address: bad number of fields: syz=6 kernel=1
-struct ax25_address_remote: no corresponding struct in kernel
-struct ax25_address_bcast: no corresponding struct in kernel
-struct ax25_address_default: no corresponding struct in kernel
-struct ax25_address_null: no corresponding struct in kernel
-struct sockaddr_ax25_uid: no corresponding struct in kernel
-struct ax25_devname: no corresponding struct in kernel
-struct ax25_devname_rose: no corresponding struct in kernel
-struct ax25_devname_netrom: no corresponding struct in kernel
+bad-field-number: ax25_address: syz=6 kernel=1
+no-such-struct: ax25_address_remote
+no-such-struct: ax25_address_bcast
+no-such-struct: ax25_address_default
+no-such-struct: ax25_address_null
+no-such-struct: sockaddr_ax25_uid
+no-such-struct: ax25_devname
+no-such-struct: ax25_devname_rose
+no-such-struct: ax25_devname_netrom
diff --git a/sys/linux/socket_bluetooth.txt.warn b/sys/linux/socket_bluetooth.txt.warn
index b782a042e..f10bddad5 100644
--- a/sys/linux/socket_bluetooth.txt.warn
+++ b/sys/linux/socket_bluetooth.txt.warn
@@ -1,2 +1,2 @@
-struct vhci_command_vendor_pkt: no corresponding struct in kernel
-struct bdaddr: no corresponding struct in kernel
+no-such-struct: vhci_command_vendor_pkt
+no-such-struct: bdaddr
diff --git a/sys/linux/socket_caif.txt.warn b/sys/linux/socket_caif.txt.warn
index 518fdc85f..7d9981e7b 100644
--- a/sys/linux/socket_caif.txt.warn
+++ b/sys/linux/socket_caif.txt.warn
@@ -1,8 +1,8 @@
-struct sockaddr_caif: bad number of fields: syz=5 kernel=2
-field sockaddr_caif.at/family: bad size: syz=4 kernel=2
-field sockaddr_caif.util/u: bad size: syz=18 kernel=20
-struct sockaddr_caif_at: no corresponding struct in kernel
-struct sockaddr_caif_util: no corresponding struct in kernel
-struct sockaddr_caif_dgm: no corresponding struct in kernel
-struct sockaddr_caif_rfm: no corresponding struct in kernel
-struct sockaddr_caif_dbg: no corresponding struct in kernel
+bad-field-number: sockaddr_caif: syz=5 kernel=2
+bad-field-size: sockaddr_caif.at/family: syz=4 kernel=2
+bad-field-size: sockaddr_caif.util/u: syz=18 kernel=20
+no-such-struct: sockaddr_caif_at
+no-such-struct: sockaddr_caif_util
+no-such-struct: sockaddr_caif_dgm
+no-such-struct: sockaddr_caif_rfm
+no-such-struct: sockaddr_caif_dbg
diff --git a/sys/linux/socket_can.txt.warn b/sys/linux/socket_can.txt.warn
index fabc23426..9ba97d234 100644
--- a/sys/linux/socket_can.txt.warn
+++ b/sys/linux/socket_can.txt.warn
@@ -1,9 +1,10 @@
-struct sockaddr_can: bad number of fields: syz=4 kernel=3
-struct sockaddr_can: bad size: syz=16 kernel=24
-field sockaddr_can.rx_id/can_addr: bad size: syz=4 kernel=16
-struct sockaddr_can_j1939: no corresponding struct in kernel
-struct can_j1939_pgn: no corresponding struct in kernel
-struct msghdr_can: no corresponding struct in kernel
-struct msghdr_can_j1939: no corresponding struct in kernel
-struct can_frame_t: no corresponding struct in kernel
-struct canid_t: no corresponding struct in kernel
+bad-struct-size: sockaddr_can: syz=16 kernel=24
+bad-field-number: sockaddr_can: syz=4 kernel=3
+bad-field-size: sockaddr_can.rx_id/can_addr: syz=4 kernel=16
+no-such-struct: sockaddr_can_j1939
+no-such-struct: can_j1939_pgn
+no-such-struct: msghdr_can
+no-such-struct: msghdr_can_j1939
+no-such-struct: can_frame_t
+no-such-struct: canid_t
+bad-struct-size: j1939_filter: syz=32 kernel=28 [386]
diff --git a/sys/linux/socket_inet.txt.warn b/sys/linux/socket_inet.txt.warn
index 9b58af8aa..ad8283d80 100644
--- a/sys/linux/socket_inet.txt.warn
+++ b/sys/linux/socket_inet.txt.warn
@@ -1,10 +1,10 @@
-struct sockaddr_in: bad number of fields: syz=3 kernel=4
-struct sockaddr_storage_in: no corresponding struct in kernel
-struct ip_mreq: no corresponding struct in kernel
-struct group_req_in: no corresponding struct in kernel
-struct group_source_req_in: no corresponding struct in kernel
-struct rtentry_in: no corresponding struct in kernel
-struct sockaddr_ethernet: no corresponding struct in kernel
-struct arpreq_in: no corresponding struct in kernel
-struct msghdr_inet: no corresponding struct in kernel
-struct mmsghdr_inet: no corresponding struct in kernel
+bad-field-number: sockaddr_in: syz=3 kernel=4
+no-such-struct: sockaddr_storage_in
+no-such-struct: ip_mreq
+no-such-struct: group_req_in
+no-such-struct: group_source_req_in
+no-such-struct: rtentry_in
+no-such-struct: sockaddr_ethernet
+no-such-struct: arpreq_in
+no-such-struct: msghdr_inet
+no-such-struct: mmsghdr_inet
diff --git a/sys/linux/socket_inet6.txt.warn b/sys/linux/socket_inet6.txt.warn
index 7fb16daae..91cb05f9c 100644
--- a/sys/linux/socket_inet6.txt.warn
+++ b/sys/linux/socket_inet6.txt.warn
@@ -1,5 +1,10 @@
-struct sockaddr_storage_in6: no corresponding struct in kernel
-struct group_req_in6: no corresponding struct in kernel
-struct group_source_req_in6: no corresponding struct in kernel
-struct msghdr_inet6: no corresponding struct in kernel
-struct mmsghdr_inet6: no corresponding struct in kernel
+no-such-struct: sockaddr_storage_in6
+no-such-struct: group_req_in6
+no-such-struct: group_source_req_in6
+bad-struct-size: in6_rtmsg: syz=80 kernel=72 [386]
+bad-field-offset: in6_rtmsg.rtmsg_info: syz=64 kernel=60 [386]
+bad-field-size: in6_rtmsg.rtmsg_info: syz=8 kernel=4 [386]
+bad-field-offset: in6_rtmsg.rtmsg_flags: syz=72 kernel=64 [386]
+bad-field-offset: in6_rtmsg.rtmsg_ifindex: syz=76 kernel=68 [386]
+no-such-struct: msghdr_inet6
+no-such-struct: mmsghdr_inet6
diff --git a/sys/linux/socket_inet_sctp.txt.warn b/sys/linux/socket_inet_sctp.txt.warn
index d7fc35339..0393c6696 100644
--- a/sys/linux/socket_inet_sctp.txt.warn
+++ b/sys/linux/socket_inet_sctp.txt.warn
@@ -1,12 +1,14 @@
-struct msghdr_sctp: no corresponding struct in kernel
-struct cmsghdr_sctp_init: no corresponding struct in kernel
-struct cmsghdr_sctp_sndrcv: no corresponding struct in kernel
-struct cmsghdr_sctp_sndinfo: no corresponding struct in kernel
-struct cmsghdr_sctp_prinfo: no corresponding struct in kernel
-struct cmsghdr_sctp_authinfo: no corresponding struct in kernel
-struct cmsghdr_sctp_dstaddrv4: no corresponding struct in kernel
-struct cmsghdr_sctp_dstaddrv6: no corresponding struct in kernel
-struct sockaddr_storage_sctp: no corresponding struct in kernel
-struct sctp_paddrthlds: no corresponding struct in kernel
-struct sctp_assoc_stats: bad number of fields: syz=3 kernel=17
-field sctp_assoc_stats.status/sas_maxrto: bad size: syz=120 kernel=8
+no-such-struct: msghdr_sctp
+no-such-struct: cmsghdr_sctp_init
+no-such-struct: cmsghdr_sctp_sndrcv
+no-such-struct: cmsghdr_sctp_sndinfo
+no-such-struct: cmsghdr_sctp_prinfo
+no-such-struct: cmsghdr_sctp_authinfo
+no-such-struct: cmsghdr_sctp_dstaddrv4
+no-such-struct: cmsghdr_sctp_dstaddrv6
+no-such-struct: sockaddr_storage_sctp
+no-such-struct: sctp_paddrthlds
+bad-struct-size: sctp_assoc_stats: syz=256 kernel=252 [386]
+bad-field-number: sctp_assoc_stats: syz=3 kernel=17
+bad-field-size: sctp_assoc_stats.status/sas_maxrto: syz=120 kernel=8
+bad-field-offset: sctp_assoc_stats.status/sas_maxrto: syz=136 kernel=132 [386]
diff --git a/sys/linux/socket_inet_tcp.txt.warn b/sys/linux/socket_inet_tcp.txt.warn
index 13cf7bbfb..7fe3ce8e1 100644
--- a/sys/linux/socket_inet_tcp.txt.warn
+++ b/sys/linux/socket_inet_tcp.txt.warn
@@ -1,9 +1,8 @@
-struct sockaddr_storage_tcp: no corresponding struct in kernel
-struct tcp_repair_opt: bad number of fields: syz=4 kernel=2
-field tcp_repair_opt.mss/opt_code: bad size: syz=8 kernel=4
-field tcp_repair_opt.window/opt_val: bad offset: syz=8 kernel=4
-field tcp_repair_opt.window/opt_val: bad size: syz=8 kernel=4
-struct tcp_repair_opt_mss: no corresponding struct in kernel
-struct tcp_repair_opt_window: no corresponding struct in kernel
-struct tcp_repair_opt_sack_perm: no corresponding struct in kernel
-struct tcp_repair_opt_timestamp: no corresponding struct in kernel
+no-such-struct: sockaddr_storage_tcp
+bad-field-number: tcp_repair_opt: syz=4 kernel=2
+bad-field-size: tcp_repair_opt.mss/opt_code: syz=8 kernel=4
+bad-field-offset: tcp_repair_opt.window/opt_val: syz=8 kernel=4
+no-such-struct: tcp_repair_opt_mss
+no-such-struct: tcp_repair_opt_window
+no-such-struct: tcp_repair_opt_sack_perm
+no-such-struct: tcp_repair_opt_timestamp
diff --git a/sys/linux/socket_ipx.txt.warn b/sys/linux/socket_ipx.txt.warn
index 86f51965a..a1583faee 100644
--- a/sys/linux/socket_ipx.txt.warn
+++ b/sys/linux/socket_ipx.txt.warn
@@ -1,2 +1,2 @@
-struct sockaddr_ipx: no corresponding struct in kernel
-struct ipx_config_data: no corresponding struct in kernel
+no-such-struct: sockaddr_ipx
+no-such-struct: ipx_config_data
diff --git a/sys/linux/socket_isdn.txt.warn b/sys/linux/socket_isdn.txt.warn
index 024566f97..dce5f2f20 100644
--- a/sys/linux/socket_isdn.txt.warn
+++ b/sys/linux/socket_isdn.txt.warn
@@ -1 +1 @@
-struct capi20_command: no corresponding struct in kernel
+no-such-struct: capi20_command
diff --git a/sys/linux/socket_key.txt.warn b/sys/linux/socket_key.txt.warn
index 60c809ac8..41c5269d5 100644
--- a/sys/linux/socket_key.txt.warn
+++ b/sys/linux/socket_key.txt.warn
@@ -1,8 +1,8 @@
-struct send_msghdr_key: no corresponding struct in kernel
-struct iovec_sadb_msg: no corresponding struct in kernel
-struct sadb_ident: no corresponding struct in kernel
-struct sadb_x_policy: bad number of fields: syz=8 kernel=7
-struct sadb_x_policy: bad size: syz=64 kernel=16
-struct sadb_x_ipsecrequest: bad number of fields: syz=9 kernel=7
-struct sadb_x_ipsecrequest: bad size: syz=48 kernel=16
-struct sadb_filter_addr: no corresponding struct in kernel
+no-such-struct: send_msghdr_key
+no-such-struct: iovec_sadb_msg
+no-such-struct: sadb_ident
+bad-struct-size: sadb_x_policy: syz=64 kernel=16
+bad-field-number: sadb_x_policy: syz=8 kernel=7
+bad-struct-size: sadb_x_ipsecrequest: syz=48 kernel=16
+bad-field-number: sadb_x_ipsecrequest: syz=9 kernel=7
+no-such-struct: sadb_filter_addr
diff --git a/sys/linux/socket_llc.txt.warn b/sys/linux/socket_llc.txt.warn
index 54754c062..cf9be7f99 100644
--- a/sys/linux/socket_llc.txt.warn
+++ b/sys/linux/socket_llc.txt.warn
@@ -1 +1 @@
-struct sockaddr_llc: bad number of fields: syz=7 kernel=8
+bad-field-number: sockaddr_llc: syz=7 kernel=8
diff --git a/sys/linux/socket_netlink.txt.warn b/sys/linux/socket_netlink.txt.warn
index e06400fef..fdd7e34f3 100644
--- a/sys/linux/socket_netlink.txt.warn
+++ b/sys/linux/socket_netlink.txt.warn
@@ -1,13 +1,12 @@
-struct sockaddr_nl: bad number of fields: syz=3 kernel=4
-field sockaddr_nl.kern/nl_family: bad size: syz=12 kernel=2
-field sockaddr_nl.proc/nl_pad: bad offset: syz=12 kernel=2
-field sockaddr_nl.proc/nl_pad: bad size: syz=12 kernel=2
-field sockaddr_nl.unspec/nl_pid: bad offset: syz=24 kernel=4
-field sockaddr_nl.unspec/nl_pid: bad size: syz=12 kernel=4
-struct sockaddr_nl_send: no corresponding struct in kernel
-struct sockaddr_nl_t: no corresponding struct in kernel
-struct msghdr_netlink_full: no corresponding struct in kernel
-struct msghdr_netlink: no corresponding struct in kernel
-struct netlink_msg_t: no corresponding struct in kernel
-struct nlattr_t: no corresponding struct in kernel
-struct nl_mmap_req: no corresponding struct in kernel
+bad-field-number: sockaddr_nl: syz=3 kernel=4
+bad-field-size: sockaddr_nl.kern/nl_family: syz=12 kernel=2
+bad-field-offset: sockaddr_nl.proc/nl_pad: syz=12 kernel=2
+bad-field-size: sockaddr_nl.unspec/nl_pid: syz=12 kernel=4
+bad-field-offset: sockaddr_nl.unspec/nl_pid: syz=24 kernel=4
+no-such-struct: sockaddr_nl_send
+no-such-struct: sockaddr_nl_t
+no-such-struct: msghdr_netlink_full
+no-such-struct: msghdr_netlink
+no-such-struct: netlink_msg_t
+no-such-struct: nlattr_t
+no-such-struct: nl_mmap_req
diff --git a/sys/linux/socket_netlink_generic.txt.warn b/sys/linux/socket_netlink_generic.txt.warn
index c1f143a92..e73456ac9 100644
--- a/sys/linux/socket_netlink_generic.txt.warn
+++ b/sys/linux/socket_netlink_generic.txt.warn
@@ -1 +1 @@
-struct genlmsghdr_t: no corresponding struct in kernel
+no-such-struct: genlmsghdr_t
diff --git a/sys/linux/socket_netlink_generic_devlink.txt.warn b/sys/linux/socket_netlink_generic_devlink.txt.warn
index 0009ff32e..5483e4c5c 100644
--- a/sys/linux/socket_netlink_generic_devlink.txt.warn
+++ b/sys/linux/socket_netlink_generic_devlink.txt.warn
@@ -1,3 +1,3 @@
-struct devlink_devname: no corresponding struct in kernel
-struct devlink_handle_nsim: no corresponding struct in kernel
-struct devlink_handle_pci: no corresponding struct in kernel
+no-such-struct: devlink_devname
+no-such-struct: devlink_handle_nsim
+no-such-struct: devlink_handle_pci
diff --git a/sys/linux/socket_netlink_generic_team.txt.warn b/sys/linux/socket_netlink_generic_team.txt.warn
index e937de42e..4aa03417b 100644
--- a/sys/linux/socket_netlink_generic_team.txt.warn
+++ b/sys/linux/socket_netlink_generic_team.txt.warn
@@ -1,3 +1,3 @@
-struct team_nl_option_policy: no corresponding struct in kernel
-struct team_nl_option_policy_per_port: no corresponding struct in kernel
-struct team_nl_option_policy_array: no corresponding struct in kernel
+no-such-struct: team_nl_option_policy
+no-such-struct: team_nl_option_policy_per_port
+no-such-struct: team_nl_option_policy_array
diff --git a/sys/linux/socket_netlink_netfilter.txt.warn b/sys/linux/socket_netlink_netfilter.txt.warn
index ef81ca670..ff1b2a852 100644
--- a/sys/linux/socket_netlink_netfilter.txt.warn
+++ b/sys/linux/socket_netlink_netfilter.txt.warn
@@ -1,2 +1,2 @@
-struct msghdr_nl_netfilter: no corresponding struct in kernel
-struct iovec_nl_netfilter: no corresponding struct in kernel
+no-such-struct: msghdr_nl_netfilter
+no-such-struct: iovec_nl_netfilter
diff --git a/sys/linux/socket_netlink_route.txt.warn b/sys/linux/socket_netlink_route.txt.warn
index c67861ba8..4ca813ba6 100644
--- a/sys/linux/socket_netlink_route.txt.warn
+++ b/sys/linux/socket_netlink_route.txt.warn
@@ -1,3 +1,6 @@
-struct ifla_info_policy_t: no corresponding struct in kernel
-struct ifla_vf_mac: bad number of fields: syz=3 kernel=2
-field ifla_vf_mac.mac: bad size: syz=6 kernel=32
+no-such-struct: ifla_info_policy_t
+bad-field-number: ifla_vf_mac: syz=3 kernel=2
+bad-field-size: ifla_vf_mac.mac: syz=6 kernel=32
+bad-struct-size: ifla_vf_guid: syz=16 kernel=12 [386]
+bad-field-offset: ifla_vf_guid.guid: syz=8 kernel=4 [386]
+bad-struct-size: rtnl_link_ifmap: syz=32 kernel=28 [386]
diff --git a/sys/linux/socket_netlink_route_sched.txt.warn b/sys/linux/socket_netlink_route_sched.txt.warn
index d1e1971ad..51735d5f7 100644
--- a/sys/linux/socket_netlink_route_sched.txt.warn
+++ b/sys/linux/socket_netlink_route_sched.txt.warn
@@ -1,41 +1,42 @@
-struct tcm_handle: no corresponding struct in kernel
-struct tca_kind_options_t: no corresponding struct in kernel
-struct m_ctinfo_options: no corresponding struct in kernel
-struct tc_gen: no corresponding struct in kernel
-struct tc_connmark: bad number of fields: syz=2 kernel=6
-field tc_connmark.tc_gen/index: bad size: syz=20 kernel=4
-field tc_connmark.zone/capab: bad offset: syz=20 kernel=4
-field tc_connmark.zone/capab: bad size: syz=2 kernel=4
-struct tc_csum: bad number of fields: syz=2 kernel=6
-field tc_csum.tc_gen/index: bad size: syz=20 kernel=4
-field tc_csum.update_flags/capab: bad offset: syz=20 kernel=4
-struct tc_ife: bad number of fields: syz=2 kernel=6
-field tc_ife.tc_gen/index: bad size: syz=20 kernel=4
-field tc_ife.flags/capab: bad offset: syz=20 kernel=4
-field tc_ife.flags/capab: bad size: syz=2 kernel=4
-struct tc_mirred: bad number of fields: syz=3 kernel=7
-field tc_mirred.tc_gen/index: bad size: syz=20 kernel=4
-field tc_mirred.eaction/capab: bad offset: syz=20 kernel=4
-field tc_mirred.ifindex/action: bad offset: syz=24 kernel=8
-struct tc_mpls: bad number of fields: syz=2 kernel=6
-field tc_mpls.tc_gen/index: bad size: syz=20 kernel=4
-field tc_mpls.m_action/capab: bad offset: syz=20 kernel=4
-struct tc_nat: bad number of fields: syz=5 kernel=9
-field tc_nat.tc_gen/index: bad size: syz=20 kernel=4
-field tc_nat.old_addr/capab: bad offset: syz=20 kernel=4
-field tc_nat.new_addr/action: bad offset: syz=24 kernel=8
-field tc_nat.mask/refcnt: bad offset: syz=28 kernel=12
-field tc_nat.flags/bindcnt: bad offset: syz=32 kernel=16
-struct m_pedit_key_ex: no corresponding struct in kernel
-struct tc_skbmod: bad number of fields: syz=2 kernel=6
-field tc_skbmod.tc_gen/index: bad size: syz=20 kernel=4
-field tc_skbmod.flags/capab: bad offset: syz=24 kernel=4
-field tc_skbmod.flags/capab: bad size: syz=8 kernel=4
-struct tc_tunnel_key: bad number of fields: syz=2 kernel=6
-field tc_tunnel_key.tc_gen/index: bad size: syz=20 kernel=4
-field tc_tunnel_key.t_action/capab: bad offset: syz=20 kernel=4
-struct tc_vlan: bad number of fields: syz=2 kernel=6
-field tc_vlan.tc_gen/index: bad size: syz=20 kernel=4
-field tc_vlan.v_action/capab: bad offset: syz=20 kernel=4
-struct tcf_ematch_hdr_t: no corresponding struct in kernel
-struct tc_estimator: no corresponding struct in kernel
+no-such-struct: tcm_handle
+no-such-struct: tca_kind_options_t
+no-such-struct: m_ctinfo_options
+no-such-struct: tc_gen
+bad-field-number: tc_connmark: syz=2 kernel=6
+bad-field-size: tc_connmark.tc_gen/index: syz=20 kernel=4
+bad-field-size: tc_connmark.zone/capab: syz=2 kernel=4
+bad-field-offset: tc_connmark.zone/capab: syz=20 kernel=4
+bad-field-number: tc_csum: syz=2 kernel=6
+bad-field-size: tc_csum.tc_gen/index: syz=20 kernel=4
+bad-field-offset: tc_csum.update_flags/capab: syz=20 kernel=4
+bad-field-number: tc_ife: syz=2 kernel=6
+bad-field-size: tc_ife.tc_gen/index: syz=20 kernel=4
+bad-field-size: tc_ife.flags/capab: syz=2 kernel=4
+bad-field-offset: tc_ife.flags/capab: syz=20 kernel=4
+bad-field-number: tc_mirred: syz=3 kernel=7
+bad-field-size: tc_mirred.tc_gen/index: syz=20 kernel=4
+bad-field-offset: tc_mirred.eaction/capab: syz=20 kernel=4
+bad-field-offset: tc_mirred.ifindex/action: syz=24 kernel=8
+bad-field-number: tc_mpls: syz=2 kernel=6
+bad-field-size: tc_mpls.tc_gen/index: syz=20 kernel=4
+bad-field-offset: tc_mpls.m_action/capab: syz=20 kernel=4
+bad-field-number: tc_nat: syz=5 kernel=9
+bad-field-size: tc_nat.tc_gen/index: syz=20 kernel=4
+bad-field-offset: tc_nat.old_addr/capab: syz=20 kernel=4
+bad-field-offset: tc_nat.new_addr/action: syz=24 kernel=8
+bad-field-offset: tc_nat.mask/refcnt: syz=28 kernel=12
+bad-field-offset: tc_nat.flags/bindcnt: syz=32 kernel=16
+no-such-struct: m_pedit_key_ex
+bad-field-number: tc_skbmod: syz=2 kernel=6
+bad-struct-size: tc_skbmod: syz=32 kernel=28 [386]
+bad-field-size: tc_skbmod.tc_gen/index: syz=20 kernel=4
+bad-field-offset: tc_skbmod.flags/capab: syz=24 kernel=4
+bad-field-size: tc_skbmod.flags/capab: syz=8 kernel=4
+bad-field-number: tc_tunnel_key: syz=2 kernel=6
+bad-field-size: tc_tunnel_key.tc_gen/index: syz=20 kernel=4
+bad-field-offset: tc_tunnel_key.t_action/capab: syz=20 kernel=4
+bad-field-number: tc_vlan: syz=2 kernel=6
+bad-field-size: tc_vlan.tc_gen/index: syz=20 kernel=4
+bad-field-offset: tc_vlan.v_action/capab: syz=20 kernel=4
+no-such-struct: tcf_ematch_hdr_t
+no-such-struct: tc_estimator
diff --git a/sys/linux/socket_netlink_xfrm.txt.warn b/sys/linux/socket_netlink_xfrm.txt.warn
index b1eae1c3c..ff1b467e3 100644
--- a/sys/linux/socket_netlink_xfrm.txt.warn
+++ b/sys/linux/socket_netlink_xfrm.txt.warn
@@ -1 +1,19 @@
-struct xfrm_filter: no corresponding struct in kernel
+bad-struct-size: xfrm_usersa_info: syz=224 kernel=220 [386]
+bad-struct-size: xfrm_userspi_info: syz=232 kernel=228 [386]
+bad-field-size: xfrm_userspi_info.info: syz=224 kernel=220 [386]
+bad-field-offset: xfrm_userspi_info.min: syz=224 kernel=220 [386]
+bad-field-offset: xfrm_userspi_info.max: syz=228 kernel=224 [386]
+bad-struct-size: xfrm_user_acquire: syz=280 kernel=276 [386]
+bad-field-size: xfrm_user_acquire.policy: syz=168 kernel=164 [386]
+bad-field-offset: xfrm_user_acquire.aalgos: syz=264 kernel=260 [386]
+bad-field-offset: xfrm_user_acquire.ealgos: syz=268 kernel=264 [386]
+bad-field-offset: xfrm_user_acquire.calgo/calgos: syz=272 kernel=268 [386]
+bad-field-offset: xfrm_user_acquire.seq: syz=276 kernel=272 [386]
+bad-struct-size: xfrm_user_expire: syz=232 kernel=224 [386]
+bad-field-size: xfrm_user_expire.state: syz=224 kernel=220 [386]
+bad-field-offset: xfrm_user_expire.hard: syz=224 kernel=220 [386]
+bad-struct-size: xfrm_user_polexpire: syz=176 kernel=168 [386]
+bad-field-size: xfrm_user_polexpire.pol: syz=168 kernel=164 [386]
+bad-field-offset: xfrm_user_polexpire.hard: syz=168 kernel=164 [386]
+no-such-struct: xfrm_filter
+bad-struct-size: xfrm_userpolicy_info: syz=168 kernel=164 [386]
diff --git a/sys/linux/socket_netrom.txt.warn b/sys/linux/socket_netrom.txt.warn
index cf3dd8eb2..6fcba9b27 100644
--- a/sys/linux/socket_netrom.txt.warn
+++ b/sys/linux/socket_netrom.txt.warn
@@ -1 +1 @@
-struct address_netrom_dev: no corresponding struct in kernel
+no-such-struct: address_netrom_dev
diff --git a/sys/linux/socket_nfc.txt.warn b/sys/linux/socket_nfc.txt.warn
index 5ddcb5f66..28a4f9ff2 100644
--- a/sys/linux/socket_nfc.txt.warn
+++ b/sys/linux/socket_nfc.txt.warn
@@ -1 +1 @@
-struct nfc_llcp_send_msghdr: no corresponding struct in kernel
+no-such-struct: nfc_llcp_send_msghdr
diff --git a/sys/linux/socket_packet.txt.warn b/sys/linux/socket_packet.txt.warn
index 793b7af04..279291a90 100644
--- a/sys/linux/socket_packet.txt.warn
+++ b/sys/linux/socket_packet.txt.warn
@@ -1,4 +1,4 @@
-struct sockaddr_ll: bad number of fields: syz=8 kernel=7
-field sockaddr_ll.sll_addr: bad size: syz=6 kernel=8
-struct packet_mreq: no corresponding struct in kernel
-struct packet_fanout_val: no corresponding struct in kernel
+bad-field-number: sockaddr_ll: syz=8 kernel=7
+bad-field-size: sockaddr_ll.sll_addr: syz=6 kernel=8
+no-such-struct: packet_mreq
+no-such-struct: packet_fanout_val
diff --git a/sys/linux/socket_pppox.txt.warn b/sys/linux/socket_pppox.txt.warn
index 8b1db2e2c..d6470dc29 100644
--- a/sys/linux/socket_pppox.txt.warn
+++ b/sys/linux/socket_pppox.txt.warn
@@ -1,5 +1,5 @@
-struct sockaddr_pppoe: no corresponding struct in kernel
-struct sockaddr_l2tp_t: no corresponding struct in kernel
-struct pppol2tp_addr_t: no corresponding struct in kernel
-struct pppol2tpin6_addr_t: no corresponding struct in kernel
-struct sockaddr_pptp: no corresponding struct in kernel
+no-such-struct: sockaddr_pppoe
+no-such-struct: sockaddr_l2tp_t
+no-such-struct: pppol2tp_addr_t
+no-such-struct: pppol2tpin6_addr_t
+no-such-struct: sockaddr_pptp
diff --git a/sys/linux/socket_rds.txt.warn b/sys/linux/socket_rds.txt.warn
index 6dc509e3f..d70be9f00 100644
--- a/sys/linux/socket_rds.txt.warn
+++ b/sys/linux/socket_rds.txt.warn
@@ -1,7 +1,11 @@
-struct msghdr_rds: no corresponding struct in kernel
-struct cmsghdr_rds_t: no corresponding struct in kernel
-struct rds_atomic_args: bad number of fields: syz=9 kernel=6
-field rds_atomic_args.arg1/: bad size: syz=8 kernel=32
-field rds_atomic_args.arg2/flags: bad offset: syz=32 kernel=56
-field rds_atomic_args.mask1/user_token: bad offset: syz=40 kernel=64
-struct rds_rdma_cookie_t: no corresponding struct in kernel
+no-such-struct: msghdr_rds
+no-such-struct: cmsghdr_rds_t
+bad-field-number: rds_atomic_args: syz=9 kernel=6
+bad-field-size: rds_atomic_args.arg1/: syz=8 kernel=32
+bad-field-offset: rds_atomic_args.arg2/flags: syz=32 kernel=56
+bad-field-offset: rds_atomic_args.mask1/user_token: syz=40 kernel=64
+bad-field-size: rds_get_mr_args.cookie_addr: syz=4 kernel=8 [386]
+bad-struct-size: rds_get_mr_for_dest_args: syz=156 kernel=160 [386]
+bad-field-size: rds_get_mr_for_dest_args.cookie_addr: syz=4 kernel=8 [386]
+bad-field-offset: rds_get_mr_for_dest_args.flags: syz=148 kernel=152 [386]
+no-such-struct: rds_rdma_cookie_t
diff --git a/sys/linux/socket_rose.txt.warn b/sys/linux/socket_rose.txt.warn
index af32e96c4..d66e224d1 100644
--- a/sys/linux/socket_rose.txt.warn
+++ b/sys/linux/socket_rose.txt.warn
@@ -1,3 +1,3 @@
-struct rose_address: bad number of fields: syz=2 kernel=1
-struct rose_address_remote: no corresponding struct in kernel
-struct rose_address_dev: no corresponding struct in kernel
+bad-field-number: rose_address: syz=2 kernel=1
+no-such-struct: rose_address_remote
+no-such-struct: rose_address_dev
diff --git a/sys/linux/socket_rxrpc.txt.warn b/sys/linux/socket_rxrpc.txt.warn
index 44fa3e743..2b419a42b 100644
--- a/sys/linux/socket_rxrpc.txt.warn
+++ b/sys/linux/socket_rxrpc.txt.warn
@@ -1,5 +1,5 @@
-struct sockaddr_rxrpc: bad number of fields: syz=2 kernel=5
-field sockaddr_rxrpc.in4/srx_family: bad size: syz=24 kernel=2
-field sockaddr_rxrpc.in6/srx_service: bad offset: syz=24 kernel=2
-field sockaddr_rxrpc.in6/srx_service: bad size: syz=36 kernel=2
-struct sockaddr_rxrpc_t: no corresponding struct in kernel
+bad-field-number: sockaddr_rxrpc: syz=2 kernel=5
+bad-field-size: sockaddr_rxrpc.in4/srx_family: syz=24 kernel=2
+bad-field-offset: sockaddr_rxrpc.in6/srx_service: syz=24 kernel=2
+bad-field-size: sockaddr_rxrpc.in6/srx_service: syz=36 kernel=2
+no-such-struct: sockaddr_rxrpc_t
diff --git a/sys/linux/socket_tipc.txt.warn b/sys/linux/socket_tipc.txt.warn
index 363fea3da..93012d91c 100644
--- a/sys/linux/socket_tipc.txt.warn
+++ b/sys/linux/socket_tipc.txt.warn
@@ -1,10 +1,10 @@
-struct tipc_pair: no corresponding struct in kernel
-struct sockaddr_tipc: bad number of fields: syz=3 kernel=4
-field sockaddr_tipc.nameseq/family: bad size: syz=16 kernel=2
-field sockaddr_tipc.name/addrtype: bad offset: syz=16 kernel=2
-field sockaddr_tipc.name/addrtype: bad size: syz=16 kernel=1
-field sockaddr_tipc.id/scope: bad offset: syz=32 kernel=3
-field sockaddr_tipc.id/scope: bad size: syz=12 kernel=1
-struct sockaddr_tipc_t: no corresponding struct in kernel
-struct msghdr_tipc: no corresponding struct in kernel
-struct tipc_address_name: no corresponding struct in kernel
+no-such-struct: tipc_pair
+bad-field-number: sockaddr_tipc: syz=3 kernel=4
+bad-field-size: sockaddr_tipc.nameseq/family: syz=16 kernel=2
+bad-field-size: sockaddr_tipc.name/addrtype: syz=16 kernel=1
+bad-field-offset: sockaddr_tipc.name/addrtype: syz=16 kernel=2
+bad-field-size: sockaddr_tipc.id/scope: syz=12 kernel=1
+bad-field-offset: sockaddr_tipc.id/scope: syz=32 kernel=3
+no-such-struct: sockaddr_tipc_t
+no-such-struct: msghdr_tipc
+no-such-struct: tipc_address_name
diff --git a/sys/linux/socket_tipc_netlink.txt.warn b/sys/linux/socket_tipc_netlink.txt.warn
index fae3cdad2..a64fb7ca2 100644
--- a/sys/linux/socket_tipc_netlink.txt.warn
+++ b/sys/linux/socket_tipc_netlink.txt.warn
@@ -1,2 +1,2 @@
-struct tipc_genlmsghdr_t: no corresponding struct in kernel
-struct tipc_tlv_desc: no corresponding struct in kernel
+no-such-struct: tipc_genlmsghdr_t
+no-such-struct: tipc_tlv_desc
diff --git a/sys/linux/socket_unix.txt.warn b/sys/linux/socket_unix.txt.warn
index ec7476ad7..3f98efe58 100644
--- a/sys/linux/socket_unix.txt.warn
+++ b/sys/linux/socket_unix.txt.warn
@@ -1,8 +1,8 @@
-struct unix_pair: no corresponding struct in kernel
-field sockaddr_un.file/sun_family: bad size: syz=110 kernel=2
-field sockaddr_un.abs/sun_path: bad offset: syz=110 kernel=2
-field sockaddr_un.abs/sun_path: bad size: syz=8 kernel=108
-struct sockaddr_un_file: no corresponding struct in kernel
-struct sockaddr_un_abstract: no corresponding struct in kernel
-struct msghdr_un: no corresponding struct in kernel
-struct cmsg_un_cred: no corresponding struct in kernel
+no-such-struct: unix_pair
+bad-field-size: sockaddr_un.file/sun_family: syz=110 kernel=2
+bad-field-offset: sockaddr_un.abs/sun_path: syz=110 kernel=2
+bad-field-size: sockaddr_un.abs/sun_path: syz=8 kernel=108
+no-such-struct: sockaddr_un_file
+no-such-struct: sockaddr_un_abstract
+no-such-struct: msghdr_un
+no-such-struct: cmsg_un_cred
diff --git a/sys/linux/socket_vnet.txt.warn b/sys/linux/socket_vnet.txt.warn
index ec6a53a7d..7ef72e3bd 100644
--- a/sys/linux/socket_vnet.txt.warn
+++ b/sys/linux/socket_vnet.txt.warn
@@ -1,4 +1,7 @@
-struct vmaddr_cid: no corresponding struct in kernel
-struct vmaddr_cid64: no corresponding struct in kernel
-field vhost_msg.iotlb/: bad size: syz=32 kernel=64
-field vhost_msg_v2.iotlb/: bad size: syz=32 kernel=64
+no-such-struct: vmaddr_cid
+no-such-struct: vmaddr_cid64
+bad-field-size: vhost_msg.iotlb/: syz=32 kernel=64
+bad-field-offset: vhost_msg.iotlb/: syz=8 kernel=4 [386]
+bad-struct-size: vhost_msg_v2: syz=68 kernel=72 [386]
+bad-field-size: vhost_msg_v2.iotlb/: syz=32 kernel=64
+bad-struct-size: vhost_iotlb_msg: syz=32 kernel=28 [386]
diff --git a/sys/linux/socket_x25.txt.warn b/sys/linux/socket_x25.txt.warn
index ba85b3a25..a8acbc181 100644
--- a/sys/linux/socket_x25.txt.warn
+++ b/sys/linux/socket_x25.txt.warn
@@ -1,2 +1,2 @@
-struct x25_address: bad number of fields: syz=2 kernel=1
-struct x25_address_remote: no corresponding struct in kernel
+bad-field-number: x25_address: syz=2 kernel=1
+no-such-struct: x25_address_remote
diff --git a/sys/linux/socket_xdp.txt.warn b/sys/linux/socket_xdp.txt.warn
index 853420bb7..3150c7882 100644
--- a/sys/linux/socket_xdp.txt.warn
+++ b/sys/linux/socket_xdp.txt.warn
@@ -1,2 +1,3 @@
-struct sockaddr_xdp_bind: no corresponding struct in kernel
-struct msghdr_xdp: no corresponding struct in kernel
+no-such-struct: sockaddr_xdp_bind
+no-such-struct: msghdr_xdp
+bad-struct-size: xdp_umem_reg: syz=32 kernel=28 [386]
diff --git a/sys/linux/sys.txt.warn b/sys/linux/sys.txt.warn
index f68d79467..4a68910cb 100644
--- a/sys/linux/sys.txt.warn
+++ b/sys/linux/sys.txt.warn
@@ -1,42 +1,78 @@
-struct alignptr: no corresponding struct in kernel
-struct align32: no corresponding struct in kernel
-struct align64: no corresponding struct in kernel
-unsupported syscall: sendfile64 due to missing const __NR_sendfile64
-unsupported syscall: stat64 due to missing const __NR_stat64
-unsupported syscall: lstat64 due to missing const __NR_lstat64
-unsupported syscall: fstat64 due to missing const __NR_fstat64
-unsupported syscall: fstatat64 due to missing const __NR_fstatat64
-struct pipefd: no corresponding struct in kernel
-struct stat: bad number of fields: syz=20 kernel=18
-struct stat: bad size: syz=128 kernel=144
-field stat.st_mode/st_nlink: bad size: syz=4 kernel=8
-field stat.st_nlink/st_mode: bad offset: syz=20 kernel=24
-field stat.st_uid: bad offset: syz=24 kernel=28
-field stat.st_gid: bad offset: syz=28 kernel=32
-field stat.st_rdev/__pad0: bad offset: syz=32 kernel=36
-field stat.st_rdev/__pad0: bad size: syz=8 kernel=4
-field stat.st_blksize: bad size: syz=4 kernel=8
-field stat.__pad2/st_blocks: bad offset: syz=60 kernel=64
-field stat.__pad2/st_blocks: bad size: syz=4 kernel=8
-field stat.st_blocks/st_atime: bad offset: syz=64 kernel=72
-field stat.st_atime/st_atime_nsec: bad offset: syz=72 kernel=80
-field stat.st_atime_nsec/st_mtime: bad offset: syz=80 kernel=88
-field stat.st_mtime/st_mtime_nsec: bad offset: syz=88 kernel=96
-field stat.st_mtime_nsec/st_ctime: bad offset: syz=96 kernel=104
-field stat.st_ctime/st_ctime_nsec: bad offset: syz=104 kernel=112
-field stat.st_ctime_nsec/__unused: bad offset: syz=112 kernel=120
-field stat.st_ctime_nsec/__unused: bad size: syz=8 kernel=24
-unsupported type: stat64 due to missing const STAT64_SIZE
-struct sigset: no corresponding struct in kernel
-struct sigset_size: no corresponding struct in kernel
-struct itimerspec: no corresponding struct in kernel
-struct itimerval: no corresponding struct in kernel
-field sigevent.u/_sigev_un: bad size: syz=16 kernel=48
-struct sigevent_u: no corresponding struct in kernel
-struct sigevent_thread: no corresponding struct in kernel
-struct cap_header: no corresponding struct in kernel
-struct cap_data: no corresponding struct in kernel
-struct fd_set: no corresponding struct in kernel
-struct siginfo: bad number of fields: syz=3 kernel=1
-field siginfo.signo/: bad size: syz=4 kernel=128
-struct timex: no corresponding struct in kernel
+no-such-struct: alignptr
+no-such-struct: align32
+no-such-struct: align64
+compiler: unsupported syscall: sendfile64 due to missing const __NR_sendfile64 [amd64]
+compiler: unsupported syscall: newfstatat due to missing const __NR_newfstatat [386]
+compiler: unsupported syscall: stat64 due to missing const __NR_stat64 [amd64]
+compiler: unsupported syscall: lstat64 due to missing const __NR_lstat64 [amd64]
+compiler: unsupported syscall: fstat64 due to missing const __NR_fstat64 [amd64]
+compiler: unsupported syscall: fstatat64 due to missing const __NR_fstatat64 [amd64]
+bad-field-size: rseq.rseq_cs: syz=4 kernel=8 [386]
+bad-field-offset: rseq.flags: syz=12 kernel=16 [386]
+bad-field-size: rseq_cs.start_ip: syz=4 kernel=8 [386]
+bad-field-offset: rseq_cs.post_commit_offset: syz=12 kernel=16 [386]
+bad-field-size: rseq_cs.post_commit_offset: syz=4 kernel=8 [386]
+bad-field-offset: rseq_cs.abort_ip: syz=16 kernel=24 [386]
+bad-field-size: rseq_cs.abort_ip: syz=4 kernel=8 [386]
+no-such-struct: pipefd
+bad-struct-size: stat: syz=128 kernel=144 [amd64]
+bad-field-number: stat: syz=20 kernel=18
+bad-struct-size: stat: syz=80 kernel=64 [386]
+bad-field-size: stat.st_mode/st_nlink: syz=4 kernel=8 [amd64]
+bad-field-size: stat.st_mode: syz=4 kernel=2 [386]
+bad-field-offset: stat.st_nlink/st_mode: syz=20 kernel=24 [amd64]
+bad-field-offset: stat.st_nlink: syz=12 kernel=10 [386]
+bad-field-size: stat.st_nlink: syz=4 kernel=2 [386]
+bad-field-offset: stat.st_uid: syz=16 kernel=12 [386]
+bad-field-offset: stat.st_uid: syz=24 kernel=28 [amd64]
+bad-field-size: stat.st_uid: syz=4 kernel=2 [386]
+bad-field-offset: stat.st_gid: syz=20 kernel=14 [386]
+bad-field-offset: stat.st_gid: syz=28 kernel=32 [amd64]
+bad-field-size: stat.st_gid: syz=4 kernel=2 [386]
+bad-field-offset: stat.st_rdev/__pad0: syz=32 kernel=36 [amd64]
+bad-field-size: stat.st_rdev/__pad0: syz=8 kernel=4 [amd64]
+bad-field-offset: stat.st_rdev: syz=24 kernel=16 [386]
+bad-field-offset: stat.__pad1/st_size: syz=28 kernel=20 [386]
+bad-field-offset: stat.st_size/st_blksize: syz=32 kernel=24 [386]
+bad-field-offset: stat.st_blksize/st_blocks: syz=36 kernel=28 [386]
+bad-field-size: stat.st_blksize: syz=4 kernel=8 [amd64]
+bad-field-offset: stat.__pad2/st_atime: syz=40 kernel=32 [386]
+bad-field-size: stat.__pad2/st_blocks: syz=4 kernel=8 [amd64]
+bad-field-offset: stat.__pad2/st_blocks: syz=60 kernel=64 [amd64]
+bad-field-offset: stat.st_blocks/st_atime: syz=64 kernel=72 [amd64]
+bad-field-offset: stat.st_blocks/st_atime_nsec: syz=44 kernel=36 [386]
+bad-field-offset: stat.st_atime/st_atime_nsec: syz=72 kernel=80 [amd64]
+bad-field-offset: stat.st_atime/st_mtime: syz=48 kernel=40 [386]
+bad-field-offset: stat.st_atime_nsec/st_mtime: syz=80 kernel=88 [amd64]
+bad-field-offset: stat.st_atime_nsec/st_mtime_nsec: syz=52 kernel=44 [386]
+bad-field-offset: stat.st_mtime/st_ctime: syz=56 kernel=48 [386]
+bad-field-offset: stat.st_mtime/st_mtime_nsec: syz=88 kernel=96 [amd64]
+bad-field-offset: stat.st_mtime_nsec/st_ctime: syz=96 kernel=104 [amd64]
+bad-field-offset: stat.st_mtime_nsec/st_ctime_nsec: syz=60 kernel=52 [386]
+bad-field-offset: stat.st_ctime/__unused4: syz=64 kernel=56 [386]
+bad-field-offset: stat.st_ctime/st_ctime_nsec: syz=104 kernel=112 [amd64]
+bad-field-offset: stat.st_ctime_nsec/__unused5: syz=68 kernel=60 [386]
+bad-field-offset: stat.st_ctime_nsec/__unused: syz=112 kernel=120 [amd64]
+bad-field-size: stat.st_ctime_nsec/__unused: syz=8 kernel=24 [amd64]
+compiler: unsupported type: stat64 due to missing const STAT64_SIZE [amd64]
+no-such-struct: sigset
+no-such-struct: sigset_size
+no-such-struct: itimerspec
+no-such-struct: itimerval
+no-such-struct: utimbuf [386]
+bad-field-size: sigevent.u/_sigev_un: syz=16 kernel=48 [amd64]
+bad-field-size: sigevent.u/_sigev_un: syz=8 kernel=52 [386]
+no-such-struct: sigevent_u
+no-such-struct: sigevent_thread
+no-such-struct: cap_header
+no-such-struct: cap_data
+no-such-struct: fd_set
+bad-struct-size: sigaction: syz=24 kernel=20 [386]
+bad-field-offset: sigaction.mask/sa_flags: syz=8 kernel=4 [386]
+bad-field-offset: sigaction.flags/sa_restorer: syz=16 kernel=8 [386]
+bad-field-offset: sigaction.restor/sa_mask: syz=20 kernel=12 [386]
+bad-field-size: sigaction.restor/sa_mask: syz=4 kernel=8 [386]
+bad-field-number: siginfo: syz=3 kernel=1
+bad-field-size: siginfo.signo/: syz=4 kernel=128
+no-such-struct: timex
+bad-field-number: user_desc: syz=10 kernel=9 [386]
diff --git a/sys/linux/trusty.txt.warn b/sys/linux/trusty.txt.warn
index fdd2d410f..5da64e921 100644
--- a/sys/linux/trusty.txt.warn
+++ b/sys/linux/trusty.txt.warn
@@ -1,18 +1,18 @@
-struct trusty_gatekeeper_error: no corresponding struct in kernel
-struct trusty_gatekeeper_retry: no corresponding struct in kernel
-struct trusty_password_handle: no corresponding struct in kernel
-struct trusty_km_secure_msg: no corresponding struct in kernel
-struct trusty_km_msg_t: no corresponding struct in kernel
-struct trusty_km_supported_digests: no corresponding struct in kernel
-struct trusty_km_configure: no corresponding struct in kernel
-len target params refer to an array with variable-size elements (do you mean bytesize?)
-len target elements refer to an array with variable-size elements (do you mean bytesize?)
-struct trusty_authorization_elem_t: no corresponding struct in kernel
-struct trusty_authorization_bytes: no corresponding struct in kernel
-struct trusty_avb_msg_t: no corresponding struct in kernel
-struct trusty_avb_rollback_index: no corresponding struct in kernel
-struct trusty_storage_msg: no corresponding struct in kernel
-struct trusty_storage_file_close_req: no corresponding struct in kernel
-struct trusty_storage_file_read_req: no corresponding struct in kernel
-struct trusty_storage_file_get_size_req: no corresponding struct in kernel
-struct trusty_storage_file_set_size_req: no corresponding struct in kernel
+no-such-struct: trusty_gatekeeper_error
+no-such-struct: trusty_gatekeeper_retry
+no-such-struct: trusty_password_handle
+no-such-struct: trusty_km_secure_msg
+no-such-struct: trusty_km_msg_t
+no-such-struct: trusty_km_supported_digests
+no-such-struct: trusty_km_configure
+compiler: len target params refer to an array with variable-size elements (do you mean bytesize?)
+compiler: len target elements refer to an array with variable-size elements (do you mean bytesize?)
+no-such-struct: trusty_authorization_elem_t
+no-such-struct: trusty_authorization_bytes
+no-such-struct: trusty_avb_msg_t
+no-such-struct: trusty_avb_rollback_index
+no-such-struct: trusty_storage_msg
+no-such-struct: trusty_storage_file_close_req
+no-such-struct: trusty_storage_file_read_req
+no-such-struct: trusty_storage_file_get_size_req
+no-such-struct: trusty_storage_file_set_size_req
diff --git a/sys/linux/uffd.txt.warn b/sys/linux/uffd.txt.warn
new file mode 100644
index 000000000..07250f207
--- /dev/null
+++ b/sys/linux/uffd.txt.warn
@@ -0,0 +1,7 @@
+bad-field-size: uffdio_range.start: syz=4 kernel=8 [386]
+bad-struct-size: uffdio_copy: syz=32 kernel=40 [386]
+bad-field-size: uffdio_copy.dst: syz=4 kernel=8 [386]
+bad-field-size: uffdio_copy.src: syz=4 kernel=8 [386]
+bad-field-offset: uffdio_copy.len: syz=8 kernel=16 [386]
+bad-field-offset: uffdio_copy.mode: syz=16 kernel=24 [386]
+bad-field-offset: uffdio_copy.copy: syz=24 kernel=32 [386]
diff --git a/sys/linux/vnet.txt.warn b/sys/linux/vnet.txt.warn
index 673a9ac17..e4791b98d 100644
--- a/sys/linux/vnet.txt.warn
+++ b/sys/linux/vnet.txt.warn
@@ -1,63 +1,63 @@
-struct vnet_fragmentation: no corresponding struct in kernel
-struct tcp_resources: no corresponding struct in kernel
-struct mac_addr_t: no corresponding struct in kernel
-struct mac_addr_link_local: no corresponding struct in kernel
-struct mac_addr: bad number of fields: syz=7 kernel=1
-struct vlan_tag_ad: no corresponding struct in kernel
-struct vlan_tag_q: no corresponding struct in kernel
-struct eth2_packet_t: no corresponding struct in kernel
-struct arp_ether_ipv4_packet: no corresponding struct in kernel
-struct arp_ether_ipv6_packet: no corresponding struct in kernel
-struct ipx_network: no corresponding struct in kernel
-struct ipx_node: no corresponding struct in kernel
-struct ipx_addr: no corresponding struct in kernel
-struct ipv4_addr_t: no corresponding struct in kernel
-struct ipv4_addr_initdev: no corresponding struct in kernel
-struct ipv4_addr: no corresponding struct in kernel
-struct ipv4_option_end: no corresponding struct in kernel
-struct ipv4_option_noop: no corresponding struct in kernel
-struct ipv4_option_ra: no corresponding struct in kernel
-struct ipv6_addr_empty: no corresponding struct in kernel
-struct ipv6_addr_t: no corresponding struct in kernel
-struct ipv6_addr_initdev: no corresponding struct in kernel
-struct ipv6_addr_loopback: no corresponding struct in kernel
-struct ipv6_addr_ipv4: no corresponding struct in kernel
-struct ipv6_addr_multicast1: no corresponding struct in kernel
-struct ipv6_addr_multicast2: no corresponding struct in kernel
-struct ipv6_addr: no corresponding struct in kernel
-struct ipv6_fragment_ext_header: no corresponding struct in kernel
-struct ipv6_tlv_pad1: no corresponding struct in kernel
-struct ipv6_tlv_ra: no corresponding struct in kernel
-struct ipv6_tlv_jumbo: no corresponding struct in kernel
-struct ipv6_tlv_hao: no corresponding struct in kernel
-struct ipv6_tlv_enc_lim: no corresponding struct in kernel
-struct tcp_nop_option: no corresponding struct in kernel
-struct tcp_eol_option: no corresponding struct in kernel
-struct tcp_mss_option: no corresponding struct in kernel
-struct tcp_window_option: no corresponding struct in kernel
-struct tcp_sack_perm_option: no corresponding struct in kernel
-struct tcp_timestamp_option: no corresponding struct in kernel
-struct tcp_md5sig_option: no corresponding struct in kernel
-struct tcp_exp_smc_option: no corresponding struct in kernel
-struct gre_packet_erspan: no corresponding struct in kernel
-struct erspan_md1: no corresponding struct in kernel
-struct erspan_md1_msg: no corresponding struct in kernel
-field erspan_md2.hwid: bad bit size/offset: syz=1/4 kernel=4/4
-struct erspan_md2_msg: no corresponding struct in kernel
-struct icmp_timestamp_packet: no corresponding struct in kernel
-struct icmp_timestamp_reply_packet: no corresponding struct in kernel
-struct icmp_info_request_packet: no corresponding struct in kernel
-struct icmp_info_reply_packet: no corresponding struct in kernel
-struct icmp_address_request_packet: no corresponding struct in kernel
-struct icmp_address_reply_packet: no corresponding struct in kernel
-struct icmpv6_mld_packet: no corresponding struct in kernel
-struct dccp_header: no corresponding struct in kernel
-struct mpls_label: bad number of fields: syz=4 kernel=1
-field mpls_label.label/entry: bad bit size/offset: syz=20/0 kernel=0/0
-struct tipc_payload_hdr: no corresponding struct in kernel
-struct tipc_payload_hdr6: no corresponding struct in kernel
-struct tipc_payload_hdr8: no corresponding struct in kernel
-struct tipc_payload_hdr10: no corresponding struct in kernel
-struct tipc_payload_hdr11: no corresponding struct in kernel
-struct tipc_name_distributor_hdr: no corresponding struct in kernel
-struct tipc_name_publication: no corresponding struct in kernel
+no-such-struct: vnet_fragmentation
+no-such-struct: tcp_resources
+no-such-struct: mac_addr_t
+no-such-struct: mac_addr_link_local
+bad-field-number: mac_addr: syz=7 kernel=1
+no-such-struct: vlan_tag_ad
+no-such-struct: vlan_tag_q
+no-such-struct: eth2_packet_t
+no-such-struct: arp_ether_ipv4_packet
+no-such-struct: arp_ether_ipv6_packet
+no-such-struct: ipx_network
+no-such-struct: ipx_node
+no-such-struct: ipx_addr
+no-such-struct: ipv4_addr_t
+no-such-struct: ipv4_addr_initdev
+no-such-struct: ipv4_addr
+no-such-struct: ipv4_option_end
+no-such-struct: ipv4_option_noop
+no-such-struct: ipv4_option_ra
+no-such-struct: ipv6_addr_empty
+no-such-struct: ipv6_addr_t
+no-such-struct: ipv6_addr_initdev
+no-such-struct: ipv6_addr_loopback
+no-such-struct: ipv6_addr_ipv4
+no-such-struct: ipv6_addr_multicast1
+no-such-struct: ipv6_addr_multicast2
+no-such-struct: ipv6_addr
+no-such-struct: ipv6_fragment_ext_header
+no-such-struct: ipv6_tlv_pad1
+no-such-struct: ipv6_tlv_ra
+no-such-struct: ipv6_tlv_jumbo
+no-such-struct: ipv6_tlv_hao
+no-such-struct: ipv6_tlv_enc_lim
+no-such-struct: tcp_nop_option
+no-such-struct: tcp_eol_option
+no-such-struct: tcp_mss_option
+no-such-struct: tcp_window_option
+no-such-struct: tcp_sack_perm_option
+no-such-struct: tcp_timestamp_option
+no-such-struct: tcp_md5sig_option
+no-such-struct: tcp_exp_smc_option
+no-such-struct: gre_packet_erspan
+no-such-struct: erspan_md1
+no-such-struct: erspan_md1_msg
+bad-bitfield: erspan_md2.hwid: size/offset: syz=1/4 kernel=4/4
+no-such-struct: erspan_md2_msg
+no-such-struct: icmp_timestamp_packet
+no-such-struct: icmp_timestamp_reply_packet
+no-such-struct: icmp_info_request_packet
+no-such-struct: icmp_info_reply_packet
+no-such-struct: icmp_address_request_packet
+no-such-struct: icmp_address_reply_packet
+no-such-struct: icmpv6_mld_packet
+no-such-struct: dccp_header
+bad-field-number: mpls_label: syz=4 kernel=1
+bad-bitfield: mpls_label.label/entry: size/offset: syz=20/0 kernel=0/0
+no-such-struct: tipc_payload_hdr
+no-such-struct: tipc_payload_hdr6
+no-such-struct: tipc_payload_hdr8
+no-such-struct: tipc_payload_hdr10
+no-such-struct: tipc_payload_hdr11
+no-such-struct: tipc_name_distributor_hdr
+no-such-struct: tipc_name_publication
diff --git a/sys/linux/vusb.txt.warn b/sys/linux/vusb.txt.warn
index af87b2b10..a30c68a5c 100644
--- a/sys/linux/vusb.txt.warn
+++ b/sys/linux/vusb.txt.warn
@@ -1,43 +1,43 @@
-len target configs refer to an array with variable-size elements (do you mean bytesize?)
-len target interfaces refer to an array with variable-size elements (do you mean bytesize?)
-struct usb_interface_descriptor_t: no corresponding struct in kernel
-len target endpoints refer to an array with variable-size elements (do you mean bytesize?)
-struct usb_endpoint_descriptor_t: no corresponding struct in kernel
-struct vusb_connect_string_descriptor: no corresponding struct in kernel
-struct vusb_descriptors: no corresponding struct in kernel
-struct vusb_descriptor_t: no corresponding struct in kernel
-struct vusb_responses: no corresponding struct in kernel
-struct vusb_response_t: no corresponding struct in kernel
-struct usb_string_descriptor_t: no corresponding struct in kernel
-len target caps refer to an array with variable-size elements (do you mean bytesize?)
-struct usb_wireless_cap_descriptor: no corresponding struct in kernel
-struct usb_ext_cap_descriptor: bad number of fields: syz=7 kernel=4
-field usb_ext_cap_descriptor.bmAttributes1/bmAttributes: bad bit size/offset: syz=8/0 kernel=0/0
-struct usb_hub_descriptor_hs: no corresponding struct in kernel
-struct usb_hub_descriptor_ss: no corresponding struct in kernel
-struct usb_endpoint_descriptor_hid_in: no corresponding struct in kernel
-struct usb_endpoint_descriptor_hid_out: no corresponding struct in kernel
-struct vusb_descriptors_hid: no corresponding struct in kernel
-struct vusb_responses_hid: no corresponding struct in kernel
-struct usb_hid_descriptor_hid: no corresponding struct in kernel
-struct usb_hid_class_descriptor_report: no corresponding struct in kernel
-struct hid_report_item_short_4_t: no corresponding struct in kernel
-struct usb_endpoint_descriptor_printer_out: no corresponding struct in kernel
-struct usb_endpoint_descriptor_printer_in: no corresponding struct in kernel
-struct vusb_descriptors_printer: no corresponding struct in kernel
-struct vusb_responses_printer: no corresponding struct in kernel
-struct usb_endpoint_descriptor_cdc_ecm_notify: no corresponding struct in kernel
-struct usb_endpoint_descriptor_cdc_ecm_in: no corresponding struct in kernel
-struct usb_endpoint_descriptor_cdc_ecm_out: no corresponding struct in kernel
-struct usb_cdc_ecm_mbm_guid: no corresponding struct in kernel
-struct vusb_descriptors_cdc_ecm: no corresponding struct in kernel
-struct usb_cdc_ecm_mac: no corresponding struct in kernel
-struct vusb_responses_cdc_ecm: no corresponding struct in kernel
-struct usb_endpoint_descriptors_cdc_ncm_data: no corresponding struct in kernel
-struct vusb_descriptors_cdc_ncm: no corresponding struct in kernel
-struct vusb_responses_cdc_ncm: no corresponding struct in kernel
-struct uac1_ac_header_descriptor_2: no corresponding struct in kernel
-struct uac_as_out_endpoint_descriptor: no corresponding struct in kernel
-struct uac_as_in_endpoint_descriptor: no corresponding struct in kernel
-struct vusb_descriptors_uac1: no corresponding struct in kernel
-struct vusb_responses_uac1: no corresponding struct in kernel
+compiler: len target configs refer to an array with variable-size elements (do you mean bytesize?)
+compiler: len target interfaces refer to an array with variable-size elements (do you mean bytesize?)
+no-such-struct: usb_interface_descriptor_t
+compiler: len target endpoints refer to an array with variable-size elements (do you mean bytesize?)
+no-such-struct: usb_endpoint_descriptor_t
+no-such-struct: vusb_connect_string_descriptor
+no-such-struct: vusb_descriptors
+no-such-struct: vusb_descriptor_t
+no-such-struct: vusb_responses
+no-such-struct: vusb_response_t
+no-such-struct: usb_string_descriptor_t
+compiler: len target caps refer to an array with variable-size elements (do you mean bytesize?)
+no-such-struct: usb_wireless_cap_descriptor
+bad-field-number: usb_ext_cap_descriptor: syz=7 kernel=4
+bad-bitfield: usb_ext_cap_descriptor.bmAttributes1/bmAttributes: size/offset: syz=8/0 kernel=0/0
+no-such-struct: usb_hub_descriptor_hs
+no-such-struct: usb_hub_descriptor_ss
+no-such-struct: usb_endpoint_descriptor_hid_in
+no-such-struct: usb_endpoint_descriptor_hid_out
+no-such-struct: vusb_descriptors_hid
+no-such-struct: vusb_responses_hid
+no-such-struct: usb_hid_descriptor_hid
+no-such-struct: usb_hid_class_descriptor_report
+no-such-struct: hid_report_item_short_4_t
+no-such-struct: usb_endpoint_descriptor_printer_out
+no-such-struct: usb_endpoint_descriptor_printer_in
+no-such-struct: vusb_descriptors_printer
+no-such-struct: vusb_responses_printer
+no-such-struct: usb_endpoint_descriptor_cdc_ecm_notify
+no-such-struct: usb_endpoint_descriptor_cdc_ecm_in
+no-such-struct: usb_endpoint_descriptor_cdc_ecm_out
+no-such-struct: usb_cdc_ecm_mbm_guid
+no-such-struct: vusb_descriptors_cdc_ecm
+no-such-struct: usb_cdc_ecm_mac
+no-such-struct: vusb_responses_cdc_ecm
+no-such-struct: usb_endpoint_descriptors_cdc_ncm_data
+no-such-struct: vusb_descriptors_cdc_ncm
+no-such-struct: vusb_responses_cdc_ncm
+no-such-struct: uac1_ac_header_descriptor_2
+no-such-struct: uac_as_out_endpoint_descriptor
+no-such-struct: uac_as_in_endpoint_descriptor
+no-such-struct: vusb_descriptors_uac1
+no-such-struct: vusb_responses_uac1
diff --git a/sys/linux/xattr.txt.warn b/sys/linux/xattr.txt.warn
index 02df0213e..b7b912d38 100644
--- a/sys/linux/xattr.txt.warn
+++ b/sys/linux/xattr.txt.warn
@@ -1,5 +1,5 @@
-struct vfs_cap_data_v1: no corresponding struct in kernel
-struct vfs_cap_elem: no corresponding struct in kernel
-struct evm_ima_xattr_digest_md5: no corresponding struct in kernel
-struct evm_ima_xattr_digest_sha1: no corresponding struct in kernel
-struct xattr_overlay_nlink: no corresponding struct in kernel
+no-such-struct: vfs_cap_data_v1
+no-such-struct: vfs_cap_elem
+no-such-struct: evm_ima_xattr_digest_md5
+no-such-struct: evm_ima_xattr_digest_sha1
+no-such-struct: xattr_overlay_nlink
diff --git a/tools/syz-check/check.go b/tools/syz-check/check.go
index effcb273d..80f773be1 100644
--- a/tools/syz-check/check.go
+++ b/tools/syz-check/check.go
@@ -33,23 +33,25 @@ import (
func main() {
var (
- flagOS = flag.String("os", runtime.GOOS, "OS")
- flagArch = flag.String("arch", runtime.GOARCH, "arch")
- flagKernelObject = flag.String("obj", "", "kernel object file")
- flagCPUProfile = flag.String("cpuprofile", "", "write CPU profile to this file")
- flagMEMProfile = flag.String("memprofile", "", "write memory profile to this file")
+ flagOS = flag.String("os", runtime.GOOS, "OS")
+ flagObjAMD64 = flag.String("obj-amd64", "", "amd64 kernel object file")
+ flagObj386 = flag.String("obj-386", "", "386 kernel object file")
+ flagCPUProfile = flag.String("cpuprofile", "", "write CPU profile to this file")
+ flagMEMProfile = flag.String("memprofile", "", "write memory profile to this file")
)
+ failf := func(msg string, args ...interface{}) {
+ fmt.Fprintf(os.Stderr, msg+"\n", args...)
+ os.Exit(1)
+ }
flag.Parse()
if *flagCPUProfile != "" {
f, err := os.Create(*flagCPUProfile)
if err != nil {
- fmt.Fprintf(os.Stderr, "failed to create cpuprofile file: %v\n", err)
- os.Exit(1)
+ failf("failed to create cpuprofile file: %v", err)
}
defer f.Close()
if err := pprof.StartCPUProfile(f); err != nil {
- fmt.Fprintf(os.Stderr, "failed to start cpu profile: %v\n", err)
- os.Exit(1)
+ failf("failed to start cpu profile: %v", err)
}
defer pprof.StopCPUProfile()
}
@@ -57,45 +59,68 @@ func main() {
defer func() {
f, err := os.Create(*flagMEMProfile)
if err != nil {
- fmt.Fprintf(os.Stderr, "failed to create memprofile file: %v\n", err)
- os.Exit(1)
+ failf("failed to create memprofile file: %v", err)
}
defer f.Close()
runtime.GC()
if err := pprof.WriteHeapProfile(f); err != nil {
- fmt.Fprintf(os.Stderr, "failed to write mem profile: %v\n", err)
- os.Exit(1)
+ failf("failed to write mem profile: %v", err)
}
}()
}
- if err := check(*flagOS, *flagArch, *flagKernelObject); err != nil {
+ warnings1, err := check(*flagOS, "amd64", *flagObjAMD64)
+ if err != nil {
+ failf("%v", err)
+ }
+ runtime.GC()
+ warnings2, err := check(*flagOS, "386", *flagObj386)
+ if err != nil {
+ failf("%v", err)
+ }
+ if err := writeWarnings(*flagOS, append(warnings1, warnings2...)); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}
-func check(OS, arch, obj string) error {
+func check(OS, arch, obj string) ([]Warn, error) {
structDescs, locs, warnings1, err := parseDescriptions(OS, arch)
if err != nil {
- return err
+ return nil, err
}
structs, err := parseKernelObject(obj)
if err != nil {
- return err
+ return nil, err
}
warnings2, err := checkImpl(structs, structDescs, locs)
if err != nil {
- return err
+ return nil, err
+ }
+ warnings := append(warnings1, warnings2...)
+ for i := range warnings {
+ warnings[i].arch = arch
}
- return writeWarnings(OS, arch, append(warnings1, warnings2...))
+ return warnings, nil
}
+const (
+ WarnCompiler = "compiler"
+ WarnNoSuchStruct = "no-such-struct"
+ WarnBadStructSize = "bad-struct-size"
+ WarnBadFieldNumber = "bad-field-number"
+ WarnBadFieldSize = "bad-field-size"
+ WarnBadFieldOffset = "bad-field-offset"
+ WarnBadBitfield = "bad-bitfield"
+)
+
type Warn struct {
- pos ast.Pos
- msg string
+ pos ast.Pos
+ arch string
+ typ string
+ msg string
}
-func writeWarnings(OS, arch string, warnings []Warn) error {
+func writeWarnings(OS string, warnings []Warn) error {
allFiles, err := filepath.Glob(filepath.Join("sys", OS, "*.warn"))
if err != nil {
return err
@@ -114,16 +139,28 @@ func writeWarnings(OS, arch string, warnings []Warn) error {
if w1.pos.Line != w2.pos.Line {
return w1.pos.Line < w2.pos.Line
}
- return w1.msg < w2.msg
+ if w1.msg != w2.msg {
+ return w1.msg < w2.msg
+ }
+ return w1.arch < w2.arch
})
buf := new(bytes.Buffer)
- prev := ""
- for _, warn := range warns {
- if warn.msg == prev {
- continue // deduplicate warnings in templates
+ for i := 0; i < len(warns); i++ {
+ warn := warns[i]
+ arch := warn.arch
+ arches := []string{warn.arch}
+ for i < len(warns)-1 && warn.msg == warns[i+1].msg {
+ if arch != warns[i+1].arch {
+ arch = warns[i+1].arch
+ arches = append(arches, arch)
+ }
+ i++
+ }
+ archStr := ""
+ if len(arches) < 2 {
+ archStr = fmt.Sprintf(" [%v]", strings.Join(arches, ","))
}
- prev = warn.msg
- fmt.Fprintf(buf, "%v\n", warn.msg)
+ fmt.Fprintf(buf, "%v: %v%v\n", warn.typ, warn.msg, archStr)
}
warnFile := filepath.Join("sys", OS, file+".warn")
if err := osutil.WriteFile(warnFile, buf.Bytes()); err != nil {
@@ -173,16 +210,16 @@ func templateName(name string) string {
func checkStruct(typ *prog.StructDesc, astStruct *ast.Struct, str *dwarf.StructType) ([]Warn, error) {
var warnings []Warn
- warn := func(pos ast.Pos, msg string, args ...interface{}) {
- warnings = append(warnings, Warn{pos, fmt.Sprintf(msg, args...)})
+ warn := func(pos ast.Pos, typ, msg string, args ...interface{}) {
+ warnings = append(warnings, Warn{pos: pos, typ: typ, msg: fmt.Sprintf(msg, args...)})
}
name := templateName(typ.Name())
if str == nil {
- warn(astStruct.Pos, "struct %v: no corresponding struct in kernel", name)
+ warn(astStruct.Pos, WarnNoSuchStruct, "%v", name)
return warnings, nil
}
if typ.Size() != uint64(str.ByteSize) {
- warn(astStruct.Pos, "struct %v: bad size: syz=%v kernel=%v", name, typ.Size(), str.ByteSize)
+ warn(astStruct.Pos, WarnBadStructSize, "%v: syz=%v kernel=%v", name, typ.Size(), str.ByteSize)
}
// TODO: handle unions, currently we should report some false errors.
if str.Kind == "union" {
@@ -212,17 +249,17 @@ func checkStruct(typ *prog.StructDesc, astStruct *ast.Struct, str *dwarf.StructT
if ai < len(str.Field) {
fld := str.Field[ai]
pos := astStruct.Fields[ai].Pos
- desc := fmt.Sprintf("field %v.%v", name, field.FieldName())
+ desc := fmt.Sprintf("%v.%v", name, field.FieldName())
if field.FieldName() != fld.Name {
desc += "/" + fld.Name
}
if field.UnitSize() != uint64(fld.Type.Size()) {
- warn(pos, "%v: bad size: syz=%v kernel=%v",
+ warn(pos, WarnBadFieldSize, "%v: syz=%v kernel=%v",
desc, field.UnitSize(), fld.Type.Size())
}
byteOffset := offset - field.UnitOffset()
if byteOffset != uint64(fld.ByteOffset) {
- warn(pos, "%v: bad offset: syz=%v kernel=%v",
+ warn(pos, WarnBadFieldOffset, "%v: syz=%v kernel=%v",
desc, byteOffset, fld.ByteOffset)
}
// How would you define bitfield offset?
@@ -236,7 +273,7 @@ func checkStruct(typ *prog.StructDesc, astStruct *ast.Struct, str *dwarf.StructT
}
if field.BitfieldLength() != uint64(fld.BitSize) ||
field.BitfieldOffset() != uint64(bitOffset) {
- warn(pos, "%v: bad bit size/offset: syz=%v/%v kernel=%v/%v",
+ warn(pos, WarnBadBitfield, "%v: size/offset: syz=%v/%v kernel=%v/%v",
desc, field.BitfieldLength(), field.BitfieldOffset(),
fld.BitSize, bitOffset)
}
@@ -245,7 +282,7 @@ func checkStruct(typ *prog.StructDesc, astStruct *ast.Struct, str *dwarf.StructT
offset += field.Size()
}
if ai != len(str.Field) {
- warn(astStruct.Pos, "struct %v: bad number of fields: syz=%v kernel=%v", name, ai, len(str.Field))
+ warn(astStruct.Pos, WarnBadFieldNumber, "%v: syz=%v kernel=%v", name, ai, len(str.Field))
}
return warnings, nil
}
@@ -254,7 +291,7 @@ func parseDescriptions(OS, arch string) ([]*prog.KeyedStruct, map[string]*ast.St
errorBuf := new(bytes.Buffer)
var warnings []Warn
eh := func(pos ast.Pos, msg string) {
- warnings = append(warnings, Warn{pos, msg})
+ warnings = append(warnings, Warn{pos: pos, typ: WarnCompiler, msg: msg})
fmt.Fprintf(errorBuf, "%v: %v\n", pos, msg)
}
top := ast.ParseGlob(filepath.Join("sys", OS, "*.txt"), eh)
diff --git a/tools/syz-check/dwarf.go b/tools/syz-check/dwarf.go
index adda98173..4acd78dbe 100644
--- a/tools/syz-check/dwarf.go
+++ b/tools/syz-check/dwarf.go
@@ -36,7 +36,10 @@ func parseKernelObject(obj string) (map[string]*dwarf.StructType, error) {
// Next parallel stage consumes offsets, extracts struct types and sends them over structc.
// Last stage consumes structs, deduplicates them and builds the resulting map.
numProcs := runtime.GOMAXPROCS(0)
- numTypes := numProcs/8 + 1
+ numTypes := numProcs / 8
+ if numTypes == 0 {
+ numTypes = 1
+ }
buffer := 100 * numProcs
unitc := make(chan Unit, buffer)
offsetc := make(chan []dwarf.Offset, buffer)