executor: fix setup of vxcan

Adding vxcan1 also adds vxcan0. Setup and use both.
diff --git a/executor/common_linux.h b/executor/common_linux.h
index 0b7e15a..5dbd5a5 100644
--- a/executor/common_linux.h
+++ b/executor/common_linux.h
@@ -587,7 +587,7 @@
 	    {"nlmon", "nlmon0"},
 	    {"caif", "caif0"},
 	    {"batadv", "batadv0"},
-	    // Note: adding device vxcan0 fails.
+	    // Note: this adds vxcan0/vxcan1 pair, similar to veth (creating vxcan0 would fail).
 	    {"vxcan", "vxcan1"},
 	    // Note: netdevsim devices can't have the same name even in different namespaces.
 	    {"netdevsim", netdevsim},
@@ -629,6 +629,7 @@
 	    {"hsr0", 0},
 	    {"dummy0", ETH_ALEN},
 	    {"nlmon0", 0},
+	    {"vxcan0", 0, true},
 	    {"vxcan1", 0, true},
 	    {"caif0", ETH_ALEN}, // TODO: up'ing caif fails with ENODEV
 	    {"batadv0", ETH_ALEN},
diff --git a/executor/defs.h b/executor/defs.h
index 33621fc..06a9fc1 100644
--- a/executor/defs.h
+++ b/executor/defs.h
@@ -70,7 +70,7 @@
 
 #if GOARCH_386
 #define GOARCH "386"
-#define SYZ_REVISION "e5c0001ae260a81ee59974b5ad110c196326f3f7"
+#define SYZ_REVISION "0ec7f090a895cf82ab41a46e65c69b4454e26ea2"
 #define SYZ_EXECUTOR_USES_FORK_SERVER 1
 #define SYZ_EXECUTOR_USES_SHMEM 1
 #define SYZ_PAGE_SIZE 4096
@@ -80,7 +80,7 @@
 
 #if GOARCH_amd64
 #define GOARCH "amd64"
-#define SYZ_REVISION "50b907b28392ade8f795f8f88990d3cb84ab2ef5"
+#define SYZ_REVISION "89d58cbf2acf0a284a5f6f4dc2c1f64cd035bee9"
 #define SYZ_EXECUTOR_USES_FORK_SERVER 1
 #define SYZ_EXECUTOR_USES_SHMEM 1
 #define SYZ_PAGE_SIZE 4096
@@ -90,7 +90,7 @@
 
 #if GOARCH_arm
 #define GOARCH "arm"
-#define SYZ_REVISION "dfba12b4edeeb95d08f357872fac2de65eaeb841"
+#define SYZ_REVISION "24b24c9036bf2c83200993105d47e6e8d52824f1"
 #define SYZ_EXECUTOR_USES_FORK_SERVER 1
 #define SYZ_EXECUTOR_USES_SHMEM 1
 #define SYZ_PAGE_SIZE 4096
@@ -100,7 +100,7 @@
 
 #if GOARCH_arm64
 #define GOARCH "arm64"
-#define SYZ_REVISION "a65fefc4d3a3550aecb837013bc8f74ba7513dce"
+#define SYZ_REVISION "0df8c4d230ccd81a645a3cda06fbe0fed41c416e"
 #define SYZ_EXECUTOR_USES_FORK_SERVER 1
 #define SYZ_EXECUTOR_USES_SHMEM 1
 #define SYZ_PAGE_SIZE 4096
@@ -110,7 +110,7 @@
 
 #if GOARCH_ppc64le
 #define GOARCH "ppc64le"
-#define SYZ_REVISION "14eab01bd82692d4bd4d4047ed3cc79341917e90"
+#define SYZ_REVISION "c9dc2f5a65994c872d1ae9542e74f45d95396bde"
 #define SYZ_EXECUTOR_USES_FORK_SERVER 1
 #define SYZ_EXECUTOR_USES_SHMEM 1
 #define SYZ_PAGE_SIZE 4096
diff --git a/executor/syscalls.h b/executor/syscalls.h
index d9a52e4..8fad520 100644
--- a/executor/syscalls.h
+++ b/executor/syscalls.h
@@ -3523,7 +3523,6 @@
     {"ioctl$VT_WAITACTIVE", 54},
     {"ioctl$ifreq_SIOCGIFINDEX_team", 54},
     {"ioctl$ifreq_SIOCGIFINDEX_vcan", 54},
-    {"ioctl$ifreq_SIOCGIFINDEX_vxcan", 54},
     {"ioctl$int_in", 54},
     {"ioctl$int_out", 54},
     {"ioctl$sock_FIOGETOWN", 54},
@@ -6379,7 +6378,6 @@
     {"ioctl$VT_WAITACTIVE", 16},
     {"ioctl$ifreq_SIOCGIFINDEX_team", 16},
     {"ioctl$ifreq_SIOCGIFINDEX_vcan", 16},
-    {"ioctl$ifreq_SIOCGIFINDEX_vxcan", 16},
     {"ioctl$int_in", 16},
     {"ioctl$int_out", 16},
     {"ioctl$sock_FIOGETOWN", 16},
@@ -9196,7 +9194,6 @@
     {"ioctl$VT_WAITACTIVE", 54},
     {"ioctl$ifreq_SIOCGIFINDEX_team", 54},
     {"ioctl$ifreq_SIOCGIFINDEX_vcan", 54},
-    {"ioctl$ifreq_SIOCGIFINDEX_vxcan", 54},
     {"ioctl$int_in", 54},
     {"ioctl$int_out", 54},
     {"ioctl$sock_FIOGETOWN", 54},
@@ -11999,7 +11996,6 @@
     {"ioctl$VT_WAITACTIVE", 29},
     {"ioctl$ifreq_SIOCGIFINDEX_team", 29},
     {"ioctl$ifreq_SIOCGIFINDEX_vcan", 29},
-    {"ioctl$ifreq_SIOCGIFINDEX_vxcan", 29},
     {"ioctl$int_in", 29},
     {"ioctl$int_out", 29},
     {"ioctl$sock_FIOGETOWN", 29},
@@ -14775,7 +14771,6 @@
     {"ioctl$VT_WAITACTIVE", 54},
     {"ioctl$ifreq_SIOCGIFINDEX_team", 54},
     {"ioctl$ifreq_SIOCGIFINDEX_vcan", 54},
-    {"ioctl$ifreq_SIOCGIFINDEX_vxcan", 54},
     {"ioctl$int_in", 54},
     {"ioctl$int_out", 54},
     {"ioctl$sock_FIOGETOWN", 54},
diff --git a/pkg/csource/generated.go b/pkg/csource/generated.go
index 2266f86..5e077f1 100644
--- a/pkg/csource/generated.go
+++ b/pkg/csource/generated.go
@@ -1608,6 +1608,7 @@
 	    {"hsr0", 0},
 	    {"dummy0", ETH_ALEN},
 	    {"nlmon0", 0},
+	    {"vxcan0", 0, true},
 	    {"vxcan1", 0, true},
 	    {"caif0", ETH_ALEN},
 	    {"batadv0", ETH_ALEN},
diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go
index 8182296..2acaacf 100644
--- a/sys/linux/gen/386.go
+++ b/sys/linux/gen/386.go
@@ -8041,16 +8041,6 @@
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_team", FldName: "elem", TypeSize: 4, ArgDir: 2, IsOptional: true}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 12}}, IsPad: true},
 	}}},
-	{Key: StructKey{Name: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", TypeSize: 32, ArgDir: 2}, Fields: []Type{
-		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, Values: []string{"vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 12}}, IsPad: true},
-	}}},
-	{Key: StructKey{Name: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", TypeSize: 32, ArgDir: 2}, Fields: []Type{
-		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, Values: []string{"vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 12}}, IsPad: true},
-	}}},
 	{Key: StructKey{Name: "ifreq_dev_t[devnames, flags[ifru_flags, int16]]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[devnames, flags[ifru_flags, int16]]", TypeSize: 32, ArgDir: 2}, Fields: []Type{
 		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, SubKind: "devnames", Values: []string{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "lo\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "tunl0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "gre0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "gretap0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip_vti0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6_vti0\x00\x00\x00\x00\x00\x00\x00\x00", "sit0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6tnl0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6gre0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6gretap0\x00\x00\x00\x00\x00\x00", "bond0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "dummy0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "eql\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ifb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ipddp0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "yam0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bcsf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bcsh0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "teql0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "nr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "rose0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "irlan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "erspan0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bpq0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vlan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bridge0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "team0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "syz_tun\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0_to_bridge\x00", "veth1_to_bridge\x00", "veth0_to_bond\x00\x00\x00", "veth1_to_bond\x00\x00\x00", "veth0_to_team\x00\x00\x00", "veth1_to_team\x00\x00\x00", "bridge_slave_0\x00\x00", "bridge_slave_1\x00\x00", "bond_slave_0\x00\x00\x00\x00", "bond_slave_1\x00\x00\x00\x00", "team_slave_0\x00\x00\x00\x00", "team_slave_1\x00\x00\x00\x00", "syzkaller0\x00\x00\x00\x00\x00\x00", "syzkaller1\x00\x00\x00\x00\x00\x00", "lapb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "hwsim0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "rose0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "nr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0_to_hsr\x00\x00\x00\x00", "veth1_to_hsr\x00\x00\x00\x00", "hsr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6erspan0\x00\x00\x00\x00\x00\x00", "nlmon0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "caif0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "batadv0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "netdevsim0\x00\x00\x00\x00\x00\x00"}},
 		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ifru_flags", FldName: "elem", TypeSize: 2, ArgDir: 2}}, Vals: []uint64{1, 2, 4096, 8192, 16384, 32768, 256, 512, 1024, 2048, 4096}},
@@ -8117,6 +8107,11 @@
 		&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "elem", ArgDir: 1}, Kind: 1},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 16}}, IsPad: true},
 	}}},
+	{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", TypeSize: 32, ArgDir: 2}, Fields: []Type{
+		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, SubKind: "vcan_device_names", Values: []string{"vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 12}}, IsPad: true},
+	}}},
 	{Key: StructKey{Name: "ifs_ifsu", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifs_ifsu", TypeSize: 4, ArgDir: 2}, Fields: []Type{
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "raw_hdlc", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "raw_hdlc_proto"}}},
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "cisco", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "cisco_proto"}}},
@@ -39662,12 +39657,7 @@
 	{NR: 54, Name: "ioctl$ifreq_SIOCGIFINDEX_vcan", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 35123},
-		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", Dir: 2}}},
-	}},
-	{NR: 54, Name: "ioctl$ifreq_SIOCGIFINDEX_vxcan", CallName: "ioctl", Args: []Type{
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 35123},
-		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", Dir: 2}}},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}}},
 	}},
 	{NR: 54, Name: "ioctl$int_in", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
@@ -55628,4 +55618,4 @@
 	{Name: "bpf_insn_load_imm_dw", Value: 24},
 }
 
-const revision_386 = "e5c0001ae260a81ee59974b5ad110c196326f3f7"
+const revision_386 = "0ec7f090a895cf82ab41a46e65c69b4454e26ea2"
diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go
index c94d190..6f5b304 100644
--- a/sys/linux/gen/amd64.go
+++ b/sys/linux/gen/amd64.go
@@ -8147,16 +8147,6 @@
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_team", FldName: "elem", TypeSize: 4, ArgDir: 2, IsOptional: true}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 20}}, IsPad: true},
 	}}},
-	{Key: StructKey{Name: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", TypeSize: 40, ArgDir: 2}, Fields: []Type{
-		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, Values: []string{"vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 20}}, IsPad: true},
-	}}},
-	{Key: StructKey{Name: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", TypeSize: 40, ArgDir: 2}, Fields: []Type{
-		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, Values: []string{"vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 20}}, IsPad: true},
-	}}},
 	{Key: StructKey{Name: "ifreq_dev_t[devnames, flags[ifru_flags, int16]]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[devnames, flags[ifru_flags, int16]]", TypeSize: 40, ArgDir: 2}, Fields: []Type{
 		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, SubKind: "devnames", Values: []string{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "lo\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "tunl0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "gre0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "gretap0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip_vti0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6_vti0\x00\x00\x00\x00\x00\x00\x00\x00", "sit0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6tnl0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6gre0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6gretap0\x00\x00\x00\x00\x00\x00", "bond0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "dummy0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "eql\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ifb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ipddp0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "yam0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bcsf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bcsh0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "teql0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "nr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "rose0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "irlan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "erspan0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bpq0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vlan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bridge0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "team0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "syz_tun\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0_to_bridge\x00", "veth1_to_bridge\x00", "veth0_to_bond\x00\x00\x00", "veth1_to_bond\x00\x00\x00", "veth0_to_team\x00\x00\x00", "veth1_to_team\x00\x00\x00", "bridge_slave_0\x00\x00", "bridge_slave_1\x00\x00", "bond_slave_0\x00\x00\x00\x00", "bond_slave_1\x00\x00\x00\x00", "team_slave_0\x00\x00\x00\x00", "team_slave_1\x00\x00\x00\x00", "syzkaller0\x00\x00\x00\x00\x00\x00", "syzkaller1\x00\x00\x00\x00\x00\x00", "lapb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "hwsim0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "rose0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "nr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0_to_hsr\x00\x00\x00\x00", "veth1_to_hsr\x00\x00\x00\x00", "hsr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6erspan0\x00\x00\x00\x00\x00\x00", "nlmon0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "caif0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "batadv0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "netdevsim0\x00\x00\x00\x00\x00\x00"}},
 		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ifru_flags", FldName: "elem", TypeSize: 2, ArgDir: 2}}, Vals: []uint64{1, 2, 4096, 8192, 16384, 32768, 256, 512, 1024, 2048, 4096}},
@@ -8226,6 +8216,11 @@
 		&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "elem", ArgDir: 1}, Kind: 1},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 24}}, IsPad: true},
 	}}},
+	{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", TypeSize: 40, ArgDir: 2}, Fields: []Type{
+		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, SubKind: "vcan_device_names", Values: []string{"vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 20}}, IsPad: true},
+	}}},
 	{Key: StructKey{Name: "ifs_ifsu", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifs_ifsu", TypeSize: 8, ArgDir: 2}, Fields: []Type{
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "raw_hdlc", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "raw_hdlc_proto"}}},
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "cisco", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "cisco_proto"}}},
@@ -40197,12 +40192,7 @@
 	{NR: 16, Name: "ioctl$ifreq_SIOCGIFINDEX_vcan", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 35123},
-		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", Dir: 2}}},
-	}},
-	{NR: 16, Name: "ioctl$ifreq_SIOCGIFINDEX_vxcan", CallName: "ioctl", Args: []Type{
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 35123},
-		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", Dir: 2}}},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}}},
 	}},
 	{NR: 16, Name: "ioctl$int_in", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
@@ -56183,4 +56173,4 @@
 	{Name: "bpf_insn_load_imm_dw", Value: 24},
 }
 
-const revision_amd64 = "50b907b28392ade8f795f8f88990d3cb84ab2ef5"
+const revision_amd64 = "89d58cbf2acf0a284a5f6f4dc2c1f64cd035bee9"
diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go
index f0d3506..4fe8fa4 100644
--- a/sys/linux/gen/arm.go
+++ b/sys/linux/gen/arm.go
@@ -8041,16 +8041,6 @@
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_team", FldName: "elem", TypeSize: 4, ArgDir: 2, IsOptional: true}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 12}}, IsPad: true},
 	}}},
-	{Key: StructKey{Name: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", TypeSize: 32, ArgDir: 2}, Fields: []Type{
-		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, Values: []string{"vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 12}}, IsPad: true},
-	}}},
-	{Key: StructKey{Name: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", TypeSize: 32, ArgDir: 2}, Fields: []Type{
-		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, Values: []string{"vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 12}}, IsPad: true},
-	}}},
 	{Key: StructKey{Name: "ifreq_dev_t[devnames, flags[ifru_flags, int16]]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[devnames, flags[ifru_flags, int16]]", TypeSize: 32, ArgDir: 2}, Fields: []Type{
 		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, SubKind: "devnames", Values: []string{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "lo\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "tunl0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "gre0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "gretap0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip_vti0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6_vti0\x00\x00\x00\x00\x00\x00\x00\x00", "sit0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6tnl0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6gre0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6gretap0\x00\x00\x00\x00\x00\x00", "bond0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "dummy0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "eql\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ifb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ipddp0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "yam0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bcsf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bcsh0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "teql0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "nr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "rose0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "irlan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "erspan0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bpq0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vlan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bridge0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "team0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "syz_tun\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0_to_bridge\x00", "veth1_to_bridge\x00", "veth0_to_bond\x00\x00\x00", "veth1_to_bond\x00\x00\x00", "veth0_to_team\x00\x00\x00", "veth1_to_team\x00\x00\x00", "bridge_slave_0\x00\x00", "bridge_slave_1\x00\x00", "bond_slave_0\x00\x00\x00\x00", "bond_slave_1\x00\x00\x00\x00", "team_slave_0\x00\x00\x00\x00", "team_slave_1\x00\x00\x00\x00", "syzkaller0\x00\x00\x00\x00\x00\x00", "syzkaller1\x00\x00\x00\x00\x00\x00", "lapb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "hwsim0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "rose0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "nr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0_to_hsr\x00\x00\x00\x00", "veth1_to_hsr\x00\x00\x00\x00", "hsr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6erspan0\x00\x00\x00\x00\x00\x00", "nlmon0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "caif0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "batadv0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "netdevsim0\x00\x00\x00\x00\x00\x00"}},
 		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ifru_flags", FldName: "elem", TypeSize: 2, ArgDir: 2}}, Vals: []uint64{1, 2, 4096, 8192, 16384, 32768, 256, 512, 1024, 2048, 4096}},
@@ -8117,6 +8107,11 @@
 		&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "elem", ArgDir: 1}, Kind: 1},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 16}}, IsPad: true},
 	}}},
+	{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", TypeSize: 32, ArgDir: 2}, Fields: []Type{
+		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, SubKind: "vcan_device_names", Values: []string{"vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 12}}, IsPad: true},
+	}}},
 	{Key: StructKey{Name: "ifs_ifsu", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifs_ifsu", TypeSize: 4, ArgDir: 2}, Fields: []Type{
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "raw_hdlc", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "raw_hdlc_proto"}}},
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "cisco", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "cisco_proto"}}},
@@ -39351,12 +39346,7 @@
 	{NR: 54, Name: "ioctl$ifreq_SIOCGIFINDEX_vcan", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 35123},
-		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", Dir: 2}}},
-	}},
-	{NR: 54, Name: "ioctl$ifreq_SIOCGIFINDEX_vxcan", CallName: "ioctl", Args: []Type{
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 4}}, Val: 35123},
-		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", Dir: 2}}},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}}},
 	}},
 	{NR: 54, Name: "ioctl$int_in", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
@@ -55205,4 +55195,4 @@
 	{Name: "bpf_insn_load_imm_dw", Value: 24},
 }
 
-const revision_arm = "dfba12b4edeeb95d08f357872fac2de65eaeb841"
+const revision_arm = "24b24c9036bf2c83200993105d47e6e8d52824f1"
diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go
index e46ea08..de120cf 100644
--- a/sys/linux/gen/arm64.go
+++ b/sys/linux/gen/arm64.go
@@ -8147,16 +8147,6 @@
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_team", FldName: "elem", TypeSize: 4, ArgDir: 2, IsOptional: true}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 20}}, IsPad: true},
 	}}},
-	{Key: StructKey{Name: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", TypeSize: 40, ArgDir: 2}, Fields: []Type{
-		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, Values: []string{"vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 20}}, IsPad: true},
-	}}},
-	{Key: StructKey{Name: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", TypeSize: 40, ArgDir: 2}, Fields: []Type{
-		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, Values: []string{"vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 20}}, IsPad: true},
-	}}},
 	{Key: StructKey{Name: "ifreq_dev_t[devnames, flags[ifru_flags, int16]]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[devnames, flags[ifru_flags, int16]]", TypeSize: 40, ArgDir: 2}, Fields: []Type{
 		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, SubKind: "devnames", Values: []string{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "lo\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "tunl0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "gre0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "gretap0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip_vti0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6_vti0\x00\x00\x00\x00\x00\x00\x00\x00", "sit0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6tnl0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6gre0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6gretap0\x00\x00\x00\x00\x00\x00", "bond0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "dummy0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "eql\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ifb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ipddp0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "yam0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bcsf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bcsh0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "teql0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "nr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "rose0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "irlan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "erspan0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bpq0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vlan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bridge0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "team0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "syz_tun\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0_to_bridge\x00", "veth1_to_bridge\x00", "veth0_to_bond\x00\x00\x00", "veth1_to_bond\x00\x00\x00", "veth0_to_team\x00\x00\x00", "veth1_to_team\x00\x00\x00", "bridge_slave_0\x00\x00", "bridge_slave_1\x00\x00", "bond_slave_0\x00\x00\x00\x00", "bond_slave_1\x00\x00\x00\x00", "team_slave_0\x00\x00\x00\x00", "team_slave_1\x00\x00\x00\x00", "syzkaller0\x00\x00\x00\x00\x00\x00", "syzkaller1\x00\x00\x00\x00\x00\x00", "lapb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "hwsim0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "rose0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "nr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0_to_hsr\x00\x00\x00\x00", "veth1_to_hsr\x00\x00\x00\x00", "hsr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6erspan0\x00\x00\x00\x00\x00\x00", "nlmon0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "caif0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "batadv0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "netdevsim0\x00\x00\x00\x00\x00\x00"}},
 		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ifru_flags", FldName: "elem", TypeSize: 2, ArgDir: 2}}, Vals: []uint64{1, 2, 4096, 8192, 16384, 32768, 256, 512, 1024, 2048, 4096}},
@@ -8226,6 +8216,11 @@
 		&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "elem", ArgDir: 1}, Kind: 1},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 24}}, IsPad: true},
 	}}},
+	{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", TypeSize: 40, ArgDir: 2}, Fields: []Type{
+		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, SubKind: "vcan_device_names", Values: []string{"vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 20}}, IsPad: true},
+	}}},
 	{Key: StructKey{Name: "ifs_ifsu", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifs_ifsu", TypeSize: 8, ArgDir: 2}, Fields: []Type{
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "raw_hdlc", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "raw_hdlc_proto"}}},
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "cisco", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "cisco_proto"}}},
@@ -39794,12 +39789,7 @@
 	{NR: 29, Name: "ioctl$ifreq_SIOCGIFINDEX_vcan", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 35123},
-		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", Dir: 2}}},
-	}},
-	{NR: 29, Name: "ioctl$ifreq_SIOCGIFINDEX_vxcan", CallName: "ioctl", Args: []Type{
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 35123},
-		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", Dir: 2}}},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}}},
 	}},
 	{NR: 29, Name: "ioctl$int_in", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
@@ -55535,4 +55525,4 @@
 	{Name: "bpf_insn_load_imm_dw", Value: 24},
 }
 
-const revision_arm64 = "a65fefc4d3a3550aecb837013bc8f74ba7513dce"
+const revision_arm64 = "0df8c4d230ccd81a645a3cda06fbe0fed41c416e"
diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go
index 7afdb82..7cbe176 100644
--- a/sys/linux/gen/ppc64le.go
+++ b/sys/linux/gen/ppc64le.go
@@ -8146,16 +8146,6 @@
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_team", FldName: "elem", TypeSize: 4, ArgDir: 2, IsOptional: true}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 20}}, IsPad: true},
 	}}},
-	{Key: StructKey{Name: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", TypeSize: 40, ArgDir: 2}, Fields: []Type{
-		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, Values: []string{"vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 20}}, IsPad: true},
-	}}},
-	{Key: StructKey{Name: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", TypeSize: 40, ArgDir: 2}, Fields: []Type{
-		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, Values: []string{"vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 20}}, IsPad: true},
-	}}},
 	{Key: StructKey{Name: "ifreq_dev_t[devnames, flags[ifru_flags, int16]]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[devnames, flags[ifru_flags, int16]]", TypeSize: 40, ArgDir: 2}, Fields: []Type{
 		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, SubKind: "devnames", Values: []string{"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "lo\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "tunl0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "gre0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "gretap0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip_vti0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6_vti0\x00\x00\x00\x00\x00\x00\x00\x00", "sit0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6tnl0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6gre0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6gretap0\x00\x00\x00\x00\x00\x00", "bond0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "dummy0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "eql\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ifb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ipddp0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "yam0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bcsf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bcsh0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "teql0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "nr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "rose0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "irlan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "erspan0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bpq0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vlan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "bridge0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "team0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "syz_tun\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0_to_bridge\x00", "veth1_to_bridge\x00", "veth0_to_bond\x00\x00\x00", "veth1_to_bond\x00\x00\x00", "veth0_to_team\x00\x00\x00", "veth1_to_team\x00\x00\x00", "bridge_slave_0\x00\x00", "bridge_slave_1\x00\x00", "bond_slave_0\x00\x00\x00\x00", "bond_slave_1\x00\x00\x00\x00", "team_slave_0\x00\x00\x00\x00", "team_slave_1\x00\x00\x00\x00", "syzkaller0\x00\x00\x00\x00\x00\x00", "syzkaller1\x00\x00\x00\x00\x00\x00", "lapb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "hwsim0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "rose0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "nr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "veth0_to_hsr\x00\x00\x00\x00", "veth1_to_hsr\x00\x00\x00\x00", "hsr0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "ip6erspan0\x00\x00\x00\x00\x00\x00", "nlmon0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "caif0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "batadv0\x00\x00\x00\x00\x00\x00\x00\x00\x00", "netdevsim0\x00\x00\x00\x00\x00\x00"}},
 		&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ifru_flags", FldName: "elem", TypeSize: 2, ArgDir: 2}}, Vals: []uint64{1, 2, 4096, 8192, 16384, 32768, 256, 512, 1024, 2048, 4096}},
@@ -8225,6 +8215,11 @@
 		&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "elem", ArgDir: 1}, Kind: 1},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 24}}, IsPad: true},
 	}}},
+	{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", TypeSize: 40, ArgDir: 2}, Fields: []Type{
+		&BufferType{TypeCommon: TypeCommon{TypeName: "string", FldName: "ifr_ifrn", TypeSize: 16, ArgDir: 2}, Kind: 2, SubKind: "vcan_device_names", Values: []string{"vcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", "vxcan1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}},
+		&ResourceType{TypeCommon: TypeCommon{TypeName: "ifindex_vcan", FldName: "elem", TypeSize: 4, ArgDir: 2}},
+		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 20}}, IsPad: true},
+	}}},
 	{Key: StructKey{Name: "ifs_ifsu", Dir: 2}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "ifs_ifsu", TypeSize: 8, ArgDir: 2}, Fields: []Type{
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "raw_hdlc", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "raw_hdlc_proto"}}},
 		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "cisco", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "cisco_proto"}}},
@@ -39660,12 +39655,7 @@
 	{NR: 54, Name: "ioctl$ifreq_SIOCGIFINDEX_vcan", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}},
 		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 35123},
-		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"vcan0\", ifindex_vcan]", Dir: 2}}},
-	}},
-	{NR: 54, Name: "ioctl$ifreq_SIOCGIFINDEX_vxcan", CallName: "ioctl", Args: []Type{
-		&ResourceType{TypeCommon: TypeCommon{TypeName: "sock_can", FldName: "fd", TypeSize: 4}},
-		&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 35123},
-		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[\"vxcan1\", ifindex_vcan]", Dir: 2}}},
+		&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "ifreq_dev_t[vcan_device_names, ifindex_vcan]", Dir: 2}}},
 	}},
 	{NR: 54, Name: "ioctl$int_in", CallName: "ioctl", Args: []Type{
 		&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
@@ -55500,4 +55490,4 @@
 	{Name: "bpf_insn_load_imm_dw", Value: 24},
 }
 
-const revision_ppc64le = "14eab01bd82692d4bd4d4047ed3cc79341917e90"
+const revision_ppc64le = "c9dc2f5a65994c872d1ae9542e74f45d95396bde"
diff --git a/sys/linux/socket_can.txt b/sys/linux/socket_can.txt
index ce63ac9..64ae27a 100644
--- a/sys/linux/socket_can.txt
+++ b/sys/linux/socket_can.txt
@@ -51,8 +51,8 @@
 getsockopt$SO_J1939_ERRQUEUE(fd sock_can_j1939, level const[SOL_CAN_J1939], opt const[SO_J1939_ERRQUEUE], val ptr[out, int32], len ptr[inout, bytesize[val, int32]])
 getsockopt$SO_J1939_SEND_PRIO(fd sock_can_j1939, level const[SOL_CAN_J1939], opt const[SO_J1939_SEND_PRIO], val ptr[out, int32], len ptr[inout, bytesize[val, int32]])
 
-ioctl$ifreq_SIOCGIFINDEX_vcan(fd sock_can, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t["vcan0", ifindex_vcan]])
-ioctl$ifreq_SIOCGIFINDEX_vxcan(fd sock_can, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t["vxcan1", ifindex_vcan]])
+ioctl$ifreq_SIOCGIFINDEX_vcan(fd sock_can, cmd const[SIOCGIFINDEX], arg ptr[inout, ifreq_dev_t[vcan_device_names, ifindex_vcan]])
+vcan_device_names = "vcan0", "vxcan0", "vxcan1"
 
 sockaddr_can {
 	can_family	const[AF_CAN, int16]