All of lore.kernel.org
 help / color / mirror / Atom feed
* [BUG] netfilter: nft_fib: NULL-ptr-deref (GPF) in nft_fib6_eval on netdev egress hook
@ 2026-06-24 19:04 Theodor Arsenij Larionov-Trichkine
  2026-06-24 20:19 ` Florian Westphal
  0 siblings, 1 reply; 4+ messages in thread
From: Theodor Arsenij Larionov-Trichkine @ 2026-06-24 19:04 UTC (permalink / raw)
  To: Pablo Neira Ayuso, Florian Westphal
  Cc: Phil Sutter, netfilter-devel, coreteam

[-- Attachment #1: Type: text/plain, Size: 8906 bytes --]

Hi!

A `fib' expression in a netdev `egress' base chain dereferences the input
device nft_in(pkt), which is NULL on the transmit path, so any IPv6 packet
leaving the chain's device hits a GPF / KASAN NULL-ptr-deref. An unprivileged
user can set this up in a user+net namespace.

The bug was found with a custom syzkaller-based fuzzer.

Environment:
- Kernel: reproduced on mainline v7.1.0 (commit f0e6f20cb52b) and linux-next
  next-20260409; gcc 11.4.0.
- Vanilla kernel, untainted.
- Arch: x86_64; guest is QEMU (i440FX) under KVM.
- Config: CONFIG_NF_TABLES_NETDEV=y, CONFIG_NETFILTER_INGRESS=y,
  CONFIG_NETFILTER_EGRESS=y, CONFIG_IPV6=y, CONFIG_KASAN=y. Built with
  CONFIG_DEBUG_INFO=y and CONFIG_KALLSYMS=y.

Crash stack-trace:
Oops: general protection fault, probably for non-canonical address
0xdffffc0000000016: 0000 [#1] SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x00000000000000b0-0x00000000000000b7]
CPU: 0 UID: 0 PID: 482 Comm: repro_bugA Not tainted
7.1.0-gf0e6f20cb52b #1 PREEMPT(full)
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014
RIP: 0010:nft_fib_is_loopback include/net/netfilter/nft_fib.h:19 [inline]
RIP: 0010:nft_fib_can_skip include/net/netfilter/nft_fib.h:40 [inline]
RIP: 0010:nft_fib6_eval+0x433/0x1060 net/ipv6/netfilter/nft_fib_ipv6.c:219
Code: d3 20 27 fd 0f b6 44 24 30 3c 05 74 4c e8 15 2c 27 fd 49 8d bf
b0 00 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6
04 02 84 c0 74 08 3c 03 0f 8e ad 08 00 00 41 8b 87 b0 00 00
RSP: 0018:ffff8880099ae470 EFLAGS: 00010212
RAX: dffffc0000000000 RBX: ffff8880099ae930 RCX: ffffffff8dc9cebb
RDX: 0000000000000016 RSI: 0000000000000005 RDI: 00000000000000b0
RBP: ffff88800e0c5780 R08: ffff8880099ae8d0 R09: 000000000000003c
R10: 0000000000000000 R11: 000000000003b819 R12: ffff88800e79f458
R13: ffff8880099aeb68 R14: ffff88800e79f460 R15: 0000000000000000
FS:  00007fb3a83926c0(0000) GS:ffff8880dc124000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000200000003100 CR3: 0000000003a3f000 CR4: 0000000000750ef0
PKRU: 55555554
Call Trace:
 <TASK>
 nft_fib_netdev_eval+0x146/0x280 net/netfilter/nft_fib_netdev.c:43
 expr_call_ops_eval net/netfilter/nf_tables_core.c:237 [inline]
 nft_do_chain+0x28b/0x1740 net/netfilter/nf_tables_core.c:285
 nft_do_chain_netdev+0x76a/0xf40 net/netfilter/nft_chain_filter.c:307
 nf_hook_entry_hookfn include/linux/netfilter.h:158 [inline]
 nf_hook_slow+0xcc/0x220 net/netfilter/core.c:619
 nf_hook_egress include/linux/netfilter_netdev.h:108 [inline]
 __dev_queue_xmit+0x1f12/0x3440 net/core/dev.c:4801
 dev_queue_xmit include/linux/netdevice.h:3436 [inline]
 neigh_resolve_output net/core/neighbour.c:1616 [inline]
 neigh_resolve_output+0x44c/0x780 net/core/neighbour.c:1596
 neigh_output include/net/neighbour.h:560 [inline]
 ip6_finish_output2+0x981/0x17c0 net/ipv6/ip6_output.c:136
 __ip6_finish_output+0x446/0x7b0 net/ipv6/ip6_output.c:208
 ip6_finish_output net/ipv6/ip6_output.c:219 [inline]
 NF_HOOK_COND include/linux/netfilter.h:307 [inline]
 ip6_output+0x23b/0x480 net/ipv6/ip6_output.c:246
 dst_output include/net/dst.h:470 [inline]
 NF_HOOK include/linux/netfilter.h:318 [inline]
 NF_HOOK include/linux/netfilter.h:312 [inline]
 ip6_xmit+0xc9e/0x1a50 net/ipv6/ip6_output.c:379
 tcp_v6_send_response+0xe5d/0x1cb0 net/ipv6/tcp_ipv6.c:992
 tcp_v6_send_reset+0x508/0xda0 net/ipv6/tcp_ipv6.c:1127
 tcp_v6_rcv+0x124c/0x3760 net/ipv6/tcp_ipv6.c:1929
 ip6_protocol_deliver_rcu+0x315/0x10a0 net/ipv6/ip6_input.c:479
 ip6_input_finish+0x1b8/0x3c0 net/ipv6/ip6_input.c:534
 NF_HOOK include/linux/netfilter.h:318 [inline]
 NF_HOOK include/linux/netfilter.h:312 [inline]
 ip6_input+0xcd/0x200 net/ipv6/ip6_input.c:545
 dst_input include/net/dst.h:480 [inline]
 ip6_rcv_finish net/ipv6/ip6_input.c:119 [inline]
 ip6_rcv_finish net/ipv6/ip6_input.c:109 [inline]
 NF_HOOK include/linux/netfilter.h:318 [inline]
 NF_HOOK include/linux/netfilter.h:312 [inline]
 ipv6_rcv+0x244/0x2c0 net/ipv6/ip6_input.c:351
 __netif_receive_skb_one_core+0x12d/0x1e0 net/core/dev.c:6206
 __netif_receive_skb+0x1d/0x160 net/core/dev.c:6319
 netif_receive_skb_internal net/core/dev.c:6405 [inline]
 netif_receive_skb+0x8f/0x480 net/core/dev.c:6464
 tun_rx_batched drivers/net/tun.c:1518 [inline]
 tun_get_user+0x2b96/0x3b00 drivers/net/tun.c:1986
 tun_chr_write_iter+0x172/0x2b0 drivers/net/tun.c:2032
 new_sync_write fs/read_write.c:595 [inline]
 vfs_write+0xa5c/0xd30 fs/read_write.c:687
 ksys_write+0x124/0x240 fs/read_write.c:739
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x10c/0x5b0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---

Root cause:
nft_fib_is_loopback() reads in->flags without a NULL check
(include/net/netfilter/nft_fib.h):

    static inline bool
    nft_fib_is_loopback(const struct sk_buff *skb, const struct net_device *in)
    {
            return skb->pkt_type == PACKET_LOOPBACK || in->flags & IFF_LOOPBACK;
    }

nft_fib_can_skip() calls it with indev = nft_in(pkt):

    static inline bool nft_fib_can_skip(const struct nft_pktinfo *pkt)
    {
            const struct net_device *indev = nft_in(pkt);
            const struct sock *sk;

            switch (nft_hook(pkt)) {
            case NF_INET_PRE_ROUTING:
            case NF_INET_INGRESS:
            case NF_INET_LOCAL_IN:
                    break;
            default:
                    return false;
            }

            sk = pkt->skb->sk;
            if (sk && sk_fullsock(sk))
                    return sk->sk_rx_dst_ifindex == indev->ifindex;

            return nft_fib_is_loopback(pkt->skb, indev);
    }

On the netdev egress hook nft_in(pkt) is NULL (there is no RX device on TX;
nf_hook_egress initializes the hook state with in = NULL). Both the
sk_fullsock branch (indev->ifindex) and the final nft_fib_is_loopback() call
dereference indev. The switch is supposed to exclude such hooks, but a
hook-number collision between two separate enums defeats it
(include/uapi/linux/netfilter.h):

    enum nf_inet_hooks { NF_INET_PRE_ROUTING=0, NF_INET_LOCAL_IN=1, ... };
    enum nf_dev_hooks  { NF_NETDEV_INGRESS=0,   NF_NETDEV_EGRESS=1 };

NF_NETDEV_EGRESS and NF_INET_LOCAL_IN are both 1. So a netdev egress chain
(chain->ops.hooknum == NF_NETDEV_EGRESS) matches case NF_INET_LOCAL_IN and
reaches the indev deref.

The same collision gets it past creation-time validation. nft_fib_validate()
(net/netfilter/nft_fib.c) gates the hook with NF_INET_* bit masks, e.g. for
oif/oifname:

    hooks = (1 << NF_INET_PRE_ROUTING) | (1 << NF_INET_LOCAL_IN) |
            (1 << NF_INET_FORWARD);
    return nft_chain_validate_hooks(ctx->chain, hooks);

(1 << NF_INET_LOCAL_IN) is bit 1, and the netdev egress chain's hooknum is also
1, so nft_chain_validate_hooks() accepts the rule. Nothing special-cases
NFPROTO_NETDEV, so fib is allowed on the netdev egress hook and then crashes at
eval.

This is not IPv6-specific. nft_fib_netdev_eval() routes ETH_P_IP the same way
to nft_fib4_eval(), which also calls the shared nft_fib_can_skip(), so an IPv4
packet egressing the hooked device faults identically. The IPv6 splat above is
just what the reproducer hit first.

Reproducer:
syz and standalone C reproducers are attached. The shape is:

  table netdev t {
    chain c {
      type filter hook egress device "lo" priority 0;
      fib daddr oif <reg>        # any fib with result oif/oifname
    }
  }
  # then send an IPv6 packet out lo

Steps:
  1. Open a netlink netfilter socket and send one nfnetlink batch creating a
     netdev table plus an egress/device "lo" base chain holding a fib (oif)
     rule.
  2. Send an IPv6 packet out lo. The attached C reproducer injects a TCP
     segment via a tun device whose RST egresses lo.

Reproduction is intermittent; loop the reproducer. Both the syz and C
reproducers triggered the crash in a KVM VM.

Possible fix:
fib has no input device on the netdev egress hook, so it should be rejected
there rather than faulting. Two options, both used elsewhere in nft:
  - restrict fib on NFPROTO_NETDEV to NF_NETDEV_INGRESS in nft_fib_validate()
    (cf. nft_reject_netdev.c, which validates against (1 << NF_NETDEV_INGRESS)
    rather than NF_INET_* masks); and/or
  - guard with `if (!nft_in(pkt))' before the deref (cf. nft_socket.c, which
    does `if (!indev) return NULL;').

I am not sure which approach is the best, so I have not sent a patch.

Also, there is a similar open syzbot report "KASAN: slab-out-of-bounds
Read in nft_fib6_eval"
(syzkaller-upstream-moderation thread uuxFZL40IOo) but so far I
consider it to be a
different bug: a heap OOB read in nft_fib6_info_nh_uses_dev (inet
path), no reproducer.
This is a NULL deref in nft_fib_can_skip on the netdev egress path,
with a reproducer.

Thanks,
Theodor Arsenij Larionov

[-- Attachment #2: repro.txt --]
[-- Type: text/plain, Size: 5660 bytes --]

r0 = socket$nl_netfilter(0x10, 0x3, 0xc)
sendmsg$NFT_BATCH(r0, &(0x7f0000001140)={0x0, 0x0, &(0x7f0000001100)={&(0x7f0000000000)={{0x14}, [@NFT_MSG_NEWTABLE={0x20, 0x0, 0xa, 0x401, 0x0, 0x0, {0x5}, [@NFTA_TABLE_NAME={0x9, 0x1, 'syza\x00'}]}, @NFT_MSG_NEWCHAIN={0x60, 0x3, 0xa, 0x401, 0x0, 0x0, {0x5}, [@NFTA_CHAIN_TABLE={0x9, 0x1, 'syza\x00'}, @NFTA_CHAIN_NAME={0x9, 0x3, 'syzb\x00'}, @NFTA_CHAIN_TYPE={0xa, 0x7, 'filter\x00'}, @NFTA_CHAIN_HOOK={0x28, 0x4, 0x0, 0x1, [@NFTA_HOOK_HOOKNUM={0x8, 0x1, 0x1, 0x0, 0x1}, @NFTA_HOOK_PRIORITY={0x8, 0x2, 0x1, 0x0, 0x12c}, @NFTA_HOOK_DEV={0x14, 0x3, 'lo\x00'}]}]}, @NFT_MSG_NEWCHAIN={0x2c, 0x3, 0xa, 0x401, 0x0, 0x0, {0x5}, [@NFTA_CHAIN_TABLE={0x9, 0x1, 'syza\x00'}, @NFTA_CHAIN_NAME={0x9, 0x3, 'syze\x00'}]}, @NFT_MSG_NEWCHAIN={0x48, 0x3, 0xa, 0x401, 0x0, 0x0, {0x5}, [@NFTA_CHAIN_TABLE={0x9, 0x1, 'syza\x00'}, @NFTA_CHAIN_NAME={0x9, 0x3, 'syzb\x00'}, @NFTA_CHAIN_COUNTERS={0x1c, 0x8, 0x0, 0x1, [@NFTA_COUNTER_PACKETS={0xc, 0x2, 0x1, 0x0, 0xffffffffffffffff}, @NFTA_COUNTER_BYTES={0xc}]}]}, @NFT_MSG_NEWRULE={0xc8, 0x6, 0xa, 0x401, 0x0, 0x0, {0x5}, [@NFTA_RULE_TABLE={0x9, 0x1, 'syza\x00'}, @NFTA_RULE_CHAIN={0x9, 0x2, 'syze\x00'}, @NFTA_RULE_EXPRESSIONS={0x9c, 0x4, 0x0, 0x1, [{0x68, 0x1, 0x0, 0x1, @inner={{0xa}, @val={0x58, 0x2, 0x0, 0x1, [@NFTA_INNER_NUM={0x8}, @NFTA_INNER_TYPE={0x8, 0x2, 0x1, 0x0, 0x2}, @NFTA_INNER_FLAGS={0x8, 0x3, 0x1, 0x0, 0x9}, @NFTA_INNER_HDRSIZE={0x8, 0x4, 0x1, 0x0, 0x1f}, @NFTA_INNER_EXPR={0x34, 0x5, 0x0, 0x1, @payload={{0xc}, @val={0x24, 0x2, 0x0, 0x1, [@NFTA_PAYLOAD_BASE={0x8, 0x2, 0x1, 0x0, 0x2}, @NFTA_PAYLOAD_OFFSET={0x8, 0x3, 0x1, 0x0, 0x4}, @NFTA_PAYLOAD_LEN={0x8, 0x4, 0x1, 0x0, 0x1}, @NFTA_PAYLOAD_DREG={0x8, 0x1, 0x1, 0x0, 0x1}]}}}]}}}, {0x30, 0x1, 0x0, 0x1, @immediate={{0xe}, @val={0x1c, 0x2, 0x0, 0x1, [@NFTA_IMMEDIATE_DREG={0x8}, @NFTA_IMMEDIATE_DATA={0x10, 0x2, 0x0, 0x1, [@NFTA_DATA_VERDICT={0xc, 0x2, 0x0, 0x1, [@NFTA_VERDICT_CODE={0x8, 0x1, 0x0, 0x1, 0xfffffffffffffffb}]}]}]}}}]}]}, @NFT_MSG_NEWCHAIN={0x30, 0x3, 0xa, 0x401, 0x0, 0x0, {0x5}, [@NFTA_CHAIN_TABLE={0x9, 0x1, 'syza\x00'}, @NFTA_CHAIN_ID={0x8, 0xb, 0x1, 0x0, 0x1}, @NFTA_CHAIN_FLAGS={0x8, 0xa, 0x1, 0x0, 0x4}]}, @NFT_MSG_NEWRULE={0x68, 0x6, 0xa, 0x401, 0x0, 0x0, {0x5}, [@NFTA_RULE_TABLE={0x9, 0x1, 'syza\x00'}, @NFTA_RULE_CHAIN={0x9, 0x2, 'syze\x00'}, @NFTA_RULE_EXPRESSIONS={0x3c, 0x4, 0x0, 0x1, [{0x38, 0x1, 0x0, 0x1, @immediate={{0xe}, @val={0x24, 0x2, 0x0, 0x1, [@NFTA_IMMEDIATE_DREG={0x8}, @NFTA_IMMEDIATE_DATA={0x18, 0x2, 0x0, 0x1, [@NFTA_DATA_VERDICT={0x14, 0x2, 0x0, 0x1, [@NFTA_VERDICT_CODE={0x8, 0x1, 0x0, 0x1, 0xfffffffffffffffd}, @NFTA_VERDICT_CHAIN_ID={0x8, 0x3, 0x1, 0x0, 0x1}]}]}]}}}]}]}, @NFT_MSG_NEWCHAIN={0x30, 0x3, 0xa, 0x401, 0x0, 0x0, {0x5}, [@NFTA_CHAIN_TABLE={0x9, 0x1, 'syza\x00'}, @NFTA_CHAIN_ID={0x8, 0xb, 0x1, 0x0, 0x2}, @NFTA_CHAIN_FLAGS={0x8, 0xa, 0x1, 0x0, 0x4}]}, @NFT_MSG_NEWRULE={0x68, 0x6, 0xa, 0x401, 0x0, 0x0, {0x5}, [@NFTA_RULE_TABLE={0x9, 0x1, 'syza\x00'}, @NFTA_RULE_CHAIN={0x9, 0x2, 'syzb\x00'}, @NFTA_RULE_EXPRESSIONS={0x3c, 0x4, 0x0, 0x1, [{0x38, 0x1, 0x0, 0x1, @immediate={{0xe}, @val={0x24, 0x2, 0x0, 0x1, [@NFTA_IMMEDIATE_DREG={0x8}, @NFTA_IMMEDIATE_DATA={0x18, 0x2, 0x0, 0x1, [@NFTA_DATA_VERDICT={0x14, 0x2, 0x0, 0x1, [@NFTA_VERDICT_CODE={0x8, 0x1, 0x0, 0x1, 0xfffffffffffffffc}, @NFTA_VERDICT_CHAIN_ID={0x8, 0x3, 0x1, 0x0, 0x2}]}]}]}}}]}]}, @NFT_MSG_NEWRULE={0x100, 0x6, 0xa, 0x401, 0x0, 0x0, {0x5}, [@NFTA_RULE_TABLE={0x9, 0x1, 'syza\x00'}, @NFTA_RULE_CHAIN={0x9, 0x2, 'syzb\x00'}, @NFTA_RULE_EXPRESSIONS={0xd4, 0x4, 0x0, 0x1, [{0x58, 0x1, 0x0, 0x1, @fib={{0x8}, @val={0x4c, 0x2, 0x0, 0x1, [@NFTA_FIB_DREG={0x8}, @NFTA_FIB_DREG={0x8, 0x1, 0x1, 0x0, 0x14}, @NFTA_FIB_DREG={0x8, 0x1, 0x1, 0x0, 0x11}, @NFTA_FIB_FLAGS={0x8, 0x3, 0x1, 0x0, 0x8}, @NFTA_FIB_RESULT={0x8, 0x2, 0x1, 0x0, 0x1}, @NFTA_FIB_RESULT={0x8, 0x2, 0x1, 0x0, 0x3}, @NFTA_FIB_RESULT={0x8, 0x2, 0x1, 0x0, 0x2}, @NFTA_FIB_FLAGS={0x8, 0x3, 0x1, 0x0, 0x30}, @NFTA_FIB_FLAGS={0x8, 0x3, 0x1, 0x0, 0x1}]}}}, {0x2c, 0x1, 0x0, 0x1, @immediate={{0xe}, @val={0x18, 0x2, 0x0, 0x1, [@NFTA_IMMEDIATE_DREG={0x8, 0x1, 0x1, 0x0, 0x1}, @NFTA_IMMEDIATE_DATA={0xc, 0x2, 0x0, 0x1, [@NFTA_DATA_VALUE={0x6, 0x1, "21bb"}]}]}}}, {0x4c, 0x1, 0x0, 0x1, @bitwise={{0xc}, @val={0x3c, 0x2, 0x0, 0x1, [@NFTA_BITWISE_SREG={0x8, 0x1, 0x1, 0x0, 0x1}, @NFTA_BITWISE_DREG={0x8, 0x2, 0x1, 0x0, 0x2}, @NFTA_BITWISE_LEN={0x8, 0x3, 0x1, 0x0, 0x2}, @NFTA_BITWISE_OP={0x8}, @NFTA_BITWISE_MASK={0xc, 0x4, 0x0, 0x1, [@NFTA_DATA_VALUE={0x6, 0x1, "ae4a"}]}, @NFTA_BITWISE_XOR={0xc, 0x5, 0x0, 0x1, [@NFTA_DATA_VALUE={0x6, 0x1, "0440"}]}]}}}]}]}, @NFT_MSG_NEWRULE={0xb8, 0x6, 0xa, 0x401, 0x0, 0x0, {0x5}, [@NFTA_RULE_TABLE={0x9, 0x1, 'syza\x00'}, @NFTA_RULE_CHAIN={0x9, 0x2, 'syzb\x00'}, @NFTA_RULE_EXPRESSIONS={0x8c, 0x4, 0x0, 0x1, [{0x58, 0x1, 0x0, 0x1, @inner={{0xa}, @val={0x48, 0x2, 0x0, 0x1, [@NFTA_INNER_NUM={0x8}, @NFTA_INNER_TYPE={0x8, 0x2, 0x1, 0x0, 0x1}, @NFTA_INNER_FLAGS={0x8, 0x3, 0x1, 0x0, 0x2}, @NFTA_INNER_HDRSIZE={0x8}, @NFTA_INNER_EXPR={0x24, 0x5, 0x0, 0x1, @meta={{0x9}, @val={0x14, 0x2, 0x0, 0x1, [@NFTA_META_KEY={0x8, 0x2, 0x1, 0x0, 0x1}, @NFTA_META_DREG={0x8, 0x1, 0x1, 0x0, 0x1}]}}}]}}}, {0x30, 0x1, 0x0, 0x1, @immediate={{0xe}, @val={0x1c, 0x2, 0x0, 0x1, [@NFTA_IMMEDIATE_DREG={0x8}, @NFTA_IMMEDIATE_DATA={0x10, 0x2, 0x0, 0x1, [@NFTA_DATA_VERDICT={0xc, 0x2, 0x0, 0x1, [@NFTA_VERDICT_CODE={0x8, 0x1, 0x0, 0x1, 0x1}]}]}]}}}]}]}], {0x14}}, 0x4cc}, 0x1, 0x0, 0x0, 0x4040}, 0x4000000)
syz_emit_ethernet(0x4a, &(0x7f0000003100)={@local, @local, @void, {@ipv6={0x86dd, @tcp={0x5, 0x6, "bd1f5a", 0x14, 0x6, 0x1, @local, @local, {[], {{0x4e21, 0x4e22, 0x41424344, 0x41424344, 0x1, 0x0, 0x5, 0x40, 0x0, 0x0, 0x2}}}}}}}, 0x0)

[-- Attachment #3: repro.c --]
[-- Type: text/x-csrc, Size: 241302 bytes --]

// autogenerated by syzkaller (https://github.com/google/syzkaller)

#define _GNU_SOURCE

#include <arpa/inet.h>
#include <dirent.h>
#include <endian.h>
#include <errno.h>
#include <fcntl.h>
#include <net/if.h>
#include <net/if_arp.h>
#include <netinet/in.h>
#include <pthread.h>
#include <sched.h>
#include <signal.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <sys/mount.h>
#include <sys/prctl.h>
#include <sys/resource.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/syscall.h>
#include <sys/sysmacros.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <sys/wait.h>
#include <time.h>
#include <unistd.h>

#include <linux/capability.h>
#include <linux/futex.h>
#include <linux/genetlink.h>
#include <linux/if_addr.h>
#include <linux/if_ether.h>
#include <linux/if_link.h>
#include <linux/if_tun.h>
#include <linux/in6.h>
#include <linux/ip.h>
#include <linux/neighbour.h>
#include <linux/net.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <linux/tcp.h>
#include <linux/veth.h>

static unsigned long long procid;

static void sleep_ms(uint64_t ms)
{
  usleep(ms * 1000);
}

static uint64_t current_time_ms(void)
{
  struct timespec ts;
  if (clock_gettime(CLOCK_MONOTONIC, &ts))
    exit(1);
  return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000;
}

static void use_temporary_dir(void)
{
  char tmpdir_template[] = "./syzkaller.XXXXXX";
  char* tmpdir = mkdtemp(tmpdir_template);
  if (!tmpdir)
    exit(1);
  if (chmod(tmpdir, 0777))
    exit(1);
  if (chdir(tmpdir))
    exit(1);
}

static void thread_start(void* (*fn)(void*), void* arg)
{
  pthread_t th;
  pthread_attr_t attr;
  pthread_attr_init(&attr);
  pthread_attr_setstacksize(&attr, 128 << 10);
  int i = 0;
  for (; i < 100; i++) {
    if (pthread_create(&th, &attr, fn, arg) == 0) {
      pthread_attr_destroy(&attr);
      return;
    }
    if (errno == EAGAIN) {
      usleep(50);
      continue;
    }
    break;
  }
  exit(1);
}

#define BITMASK(bf_off, bf_len) (((1ull << (bf_len)) - 1) << (bf_off))
#define STORE_BY_BITMASK(type, htobe, addr, val, bf_off, bf_len)               \
  *(type*)(addr) =                                                             \
      htobe((htobe(*(type*)(addr)) & ~BITMASK((bf_off), (bf_len))) |           \
            (((type)(val) << (bf_off)) & BITMASK((bf_off), (bf_len))))

struct csum_inet {
  uint32_t acc;
};

static void csum_inet_init(struct csum_inet* csum)
{
  csum->acc = 0;
}

static void csum_inet_update(struct csum_inet* csum, const uint8_t* data,
                             size_t length)
{
  if (length == 0)
    return;
  size_t i = 0;
  for (; i < length - 1; i += 2)
    csum->acc += *(uint16_t*)&data[i];
  if (length & 1)
    csum->acc += le16toh((uint16_t)data[length - 1]);
  while (csum->acc > 0xffff)
    csum->acc = (csum->acc & 0xffff) + (csum->acc >> 16);
}

static uint16_t csum_inet_digest(struct csum_inet* csum)
{
  return ~csum->acc;
}

typedef struct {
  int state;
} event_t;

static void event_init(event_t* ev)
{
  ev->state = 0;
}

static void event_reset(event_t* ev)
{
  ev->state = 0;
}

static void event_set(event_t* ev)
{
  if (ev->state)
    exit(1);
  __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE);
  syscall(SYS_futex, &ev->state, FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1000000);
}

static void event_wait(event_t* ev)
{
  while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE))
    syscall(SYS_futex, &ev->state, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, 0, 0);
}

static int event_isset(event_t* ev)
{
  return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE);
}

static int event_timedwait(event_t* ev, uint64_t timeout)
{
  uint64_t start = current_time_ms();
  uint64_t now = start;
  for (;;) {
    uint64_t remain = timeout - (now - start);
    struct timespec ts;
    ts.tv_sec = remain / 1000;
    ts.tv_nsec = (remain % 1000) * 1000 * 1000;
    syscall(SYS_futex, &ev->state, FUTEX_WAIT | FUTEX_PRIVATE_FLAG, 0, &ts);
    if (__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE))
      return 1;
    now = current_time_ms();
    if (now - start > timeout)
      return 0;
  }
}

static bool write_file(const char* file, const char* what, ...)
{
  char buf[1024];
  va_list args;
  va_start(args, what);
  vsnprintf(buf, sizeof(buf), what, args);
  va_end(args);
  buf[sizeof(buf) - 1] = 0;
  int len = strlen(buf);
  int fd = open(file, O_WRONLY | O_CLOEXEC);
  if (fd == -1)
    return false;
  if (write(fd, buf, len) != len) {
    int err = errno;
    close(fd);
    errno = err;
    return false;
  }
  close(fd);
  return true;
}

struct nlmsg {
  char* pos;
  int nesting;
  struct nlattr* nested[8];
  char buf[4096];
};

static void netlink_init(struct nlmsg* nlmsg, int typ, int flags,
                         const void* data, int size)
{
  memset(nlmsg, 0, sizeof(*nlmsg));
  struct nlmsghdr* hdr = (struct nlmsghdr*)nlmsg->buf;
  hdr->nlmsg_type = typ;
  hdr->nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK | flags;
  memcpy(hdr + 1, data, size);
  nlmsg->pos = (char*)(hdr + 1) + NLMSG_ALIGN(size);
}

static void netlink_attr(struct nlmsg* nlmsg, int typ, const void* data,
                         int size)
{
  struct nlattr* attr = (struct nlattr*)nlmsg->pos;
  attr->nla_len = sizeof(*attr) + size;
  attr->nla_type = typ;
  if (size > 0)
    memcpy(attr + 1, data, size);
  nlmsg->pos += NLMSG_ALIGN(attr->nla_len);
}

static void netlink_nest(struct nlmsg* nlmsg, int typ)
{
  struct nlattr* attr = (struct nlattr*)nlmsg->pos;
  attr->nla_type = typ;
  nlmsg->pos += sizeof(*attr);
  nlmsg->nested[nlmsg->nesting++] = attr;
}

static void netlink_done(struct nlmsg* nlmsg)
{
  struct nlattr* attr = nlmsg->nested[--nlmsg->nesting];
  attr->nla_len = nlmsg->pos - (char*)attr;
}

static int netlink_send_ext(struct nlmsg* nlmsg, int sock, uint16_t reply_type,
                            int* reply_len, bool dofail)
{
  if (nlmsg->pos > nlmsg->buf + sizeof(nlmsg->buf) || nlmsg->nesting)
    exit(1);
  struct nlmsghdr* hdr = (struct nlmsghdr*)nlmsg->buf;
  hdr->nlmsg_len = nlmsg->pos - nlmsg->buf;
  struct sockaddr_nl addr;
  memset(&addr, 0, sizeof(addr));
  addr.nl_family = AF_NETLINK;
  ssize_t n = sendto(sock, nlmsg->buf, hdr->nlmsg_len, 0,
                     (struct sockaddr*)&addr, sizeof(addr));
  if (n != (ssize_t)hdr->nlmsg_len) {
    if (dofail)
      exit(1);
    return -1;
  }
  n = recv(sock, nlmsg->buf, sizeof(nlmsg->buf), 0);
  if (reply_len)
    *reply_len = 0;
  if (n < 0) {
    if (dofail)
      exit(1);
    return -1;
  }
  if (n < (ssize_t)sizeof(struct nlmsghdr)) {
    errno = EINVAL;
    if (dofail)
      exit(1);
    return -1;
  }
  if (hdr->nlmsg_type == NLMSG_DONE)
    return 0;
  if (reply_len && hdr->nlmsg_type == reply_type) {
    *reply_len = n;
    return 0;
  }
  if (n < (ssize_t)(sizeof(struct nlmsghdr) + sizeof(struct nlmsgerr))) {
    errno = EINVAL;
    if (dofail)
      exit(1);
    return -1;
  }
  if (hdr->nlmsg_type != NLMSG_ERROR) {
    errno = EINVAL;
    if (dofail)
      exit(1);
    return -1;
  }
  errno = -((struct nlmsgerr*)(hdr + 1))->error;
  return -errno;
}

static int netlink_send(struct nlmsg* nlmsg, int sock)
{
  return netlink_send_ext(nlmsg, sock, 0, NULL, true);
}

static int netlink_query_family_id(struct nlmsg* nlmsg, int sock,
                                   const char* family_name, bool dofail)
{
  struct genlmsghdr genlhdr;
  memset(&genlhdr, 0, sizeof(genlhdr));
  genlhdr.cmd = CTRL_CMD_GETFAMILY;
  netlink_init(nlmsg, GENL_ID_CTRL, 0, &genlhdr, sizeof(genlhdr));
  netlink_attr(nlmsg, CTRL_ATTR_FAMILY_NAME, family_name,
               strnlen(family_name, GENL_NAMSIZ - 1) + 1);
  int n = 0;
  int err = netlink_send_ext(nlmsg, sock, GENL_ID_CTRL, &n, dofail);
  if (err < 0) {
    return -1;
  }
  uint16_t id = 0;
  struct nlattr* attr = (struct nlattr*)(nlmsg->buf + NLMSG_HDRLEN +
                                         NLMSG_ALIGN(sizeof(genlhdr)));
  for (; (char*)attr < nlmsg->buf + n;
       attr = (struct nlattr*)((char*)attr + NLMSG_ALIGN(attr->nla_len))) {
    if (attr->nla_type == CTRL_ATTR_FAMILY_ID) {
      id = *(uint16_t*)(attr + 1);
      break;
    }
  }
  if (!id) {
    errno = EINVAL;
    return -1;
  }
  recv(sock, nlmsg->buf, sizeof(nlmsg->buf), 0);
  return id;
}

static int netlink_next_msg(struct nlmsg* nlmsg, unsigned int offset,
                            unsigned int total_len)
{
  struct nlmsghdr* hdr = (struct nlmsghdr*)(nlmsg->buf + offset);
  if (offset == total_len || offset + hdr->nlmsg_len > total_len)
    return -1;
  return hdr->nlmsg_len;
}

static unsigned int queue_count = 2;

static void netlink_add_device_impl(struct nlmsg* nlmsg, const char* type,
                                    const char* name, bool up)
{
  struct ifinfomsg hdr;
  memset(&hdr, 0, sizeof(hdr));
  if (up)
    hdr.ifi_flags = hdr.ifi_change = IFF_UP;
  netlink_init(nlmsg, RTM_NEWLINK, NLM_F_EXCL | NLM_F_CREATE, &hdr,
               sizeof(hdr));
  if (name)
    netlink_attr(nlmsg, IFLA_IFNAME, name, strlen(name));
  netlink_attr(nlmsg, IFLA_NUM_TX_QUEUES, &queue_count, sizeof(queue_count));
  netlink_attr(nlmsg, IFLA_NUM_RX_QUEUES, &queue_count, sizeof(queue_count));
  netlink_nest(nlmsg, IFLA_LINKINFO);
  netlink_attr(nlmsg, IFLA_INFO_KIND, type, strlen(type));
}

static void netlink_add_device(struct nlmsg* nlmsg, int sock, const char* type,
                               const char* name)
{
  netlink_add_device_impl(nlmsg, type, name, false);
  netlink_done(nlmsg);
  int err = netlink_send(nlmsg, sock);
  if (err < 0) {
  }
}

static void netlink_add_veth(struct nlmsg* nlmsg, int sock, const char* name,
                             const char* peer)
{
  netlink_add_device_impl(nlmsg, "veth", name, false);
  netlink_nest(nlmsg, IFLA_INFO_DATA);
  netlink_nest(nlmsg, VETH_INFO_PEER);
  nlmsg->pos += sizeof(struct ifinfomsg);
  netlink_attr(nlmsg, IFLA_IFNAME, peer, strlen(peer));
  netlink_attr(nlmsg, IFLA_NUM_TX_QUEUES, &queue_count, sizeof(queue_count));
  netlink_attr(nlmsg, IFLA_NUM_RX_QUEUES, &queue_count, sizeof(queue_count));
  netlink_done(nlmsg);
  netlink_done(nlmsg);
  netlink_done(nlmsg);
  int err = netlink_send(nlmsg, sock);
  if (err < 0) {
  }
}

static void netlink_add_xfrm(struct nlmsg* nlmsg, int sock, const char* name)
{
  netlink_add_device_impl(nlmsg, "xfrm", name, true);
  netlink_nest(nlmsg, IFLA_INFO_DATA);
  int if_id = 1;
  netlink_attr(nlmsg, 2, &if_id, sizeof(if_id));
  netlink_done(nlmsg);
  netlink_done(nlmsg);
  int err = netlink_send(nlmsg, sock);
  if (err < 0) {
  }
}

static void netlink_add_hsr(struct nlmsg* nlmsg, int sock, const char* name,
                            const char* slave1, const char* slave2)
{
  netlink_add_device_impl(nlmsg, "hsr", name, false);
  netlink_nest(nlmsg, IFLA_INFO_DATA);
  int ifindex1 = if_nametoindex(slave1);
  netlink_attr(nlmsg, IFLA_HSR_SLAVE1, &ifindex1, sizeof(ifindex1));
  int ifindex2 = if_nametoindex(slave2);
  netlink_attr(nlmsg, IFLA_HSR_SLAVE2, &ifindex2, sizeof(ifindex2));
  netlink_done(nlmsg);
  netlink_done(nlmsg);
  int err = netlink_send(nlmsg, sock);
  if (err < 0) {
  }
}

static void netlink_add_linked(struct nlmsg* nlmsg, int sock, const char* type,
                               const char* name, const char* link)
{
  netlink_add_device_impl(nlmsg, type, name, false);
  netlink_done(nlmsg);
  int ifindex = if_nametoindex(link);
  netlink_attr(nlmsg, IFLA_LINK, &ifindex, sizeof(ifindex));
  int err = netlink_send(nlmsg, sock);
  if (err < 0) {
  }
}

static void netlink_add_vlan(struct nlmsg* nlmsg, int sock, const char* name,
                             const char* link, uint16_t id, uint16_t proto)
{
  netlink_add_device_impl(nlmsg, "vlan", name, false);
  netlink_nest(nlmsg, IFLA_INFO_DATA);
  netlink_attr(nlmsg, IFLA_VLAN_ID, &id, sizeof(id));
  netlink_attr(nlmsg, IFLA_VLAN_PROTOCOL, &proto, sizeof(proto));
  netlink_done(nlmsg);
  netlink_done(nlmsg);
  int ifindex = if_nametoindex(link);
  netlink_attr(nlmsg, IFLA_LINK, &ifindex, sizeof(ifindex));
  int err = netlink_send(nlmsg, sock);
  if (err < 0) {
  }
}

static void netlink_add_macvlan(struct nlmsg* nlmsg, int sock, const char* name,
                                const char* link)
{
  netlink_add_device_impl(nlmsg, "macvlan", name, false);
  netlink_nest(nlmsg, IFLA_INFO_DATA);
  uint32_t mode = MACVLAN_MODE_BRIDGE;
  netlink_attr(nlmsg, IFLA_MACVLAN_MODE, &mode, sizeof(mode));
  netlink_done(nlmsg);
  netlink_done(nlmsg);
  int ifindex = if_nametoindex(link);
  netlink_attr(nlmsg, IFLA_LINK, &ifindex, sizeof(ifindex));
  int err = netlink_send(nlmsg, sock);
  if (err < 0) {
  }
}

static void netlink_add_geneve(struct nlmsg* nlmsg, int sock, const char* name,
                               uint32_t vni, struct in_addr* addr4,
                               struct in6_addr* addr6)
{
  netlink_add_device_impl(nlmsg, "geneve", name, false);
  netlink_nest(nlmsg, IFLA_INFO_DATA);
  netlink_attr(nlmsg, IFLA_GENEVE_ID, &vni, sizeof(vni));
  if (addr4)
    netlink_attr(nlmsg, IFLA_GENEVE_REMOTE, addr4, sizeof(*addr4));
  if (addr6)
    netlink_attr(nlmsg, IFLA_GENEVE_REMOTE6, addr6, sizeof(*addr6));
  netlink_done(nlmsg);
  netlink_done(nlmsg);
  int err = netlink_send(nlmsg, sock);
  if (err < 0) {
  }
}

#define IFLA_IPVLAN_FLAGS 2
#define IPVLAN_MODE_L3S 2
#undef IPVLAN_F_VEPA
#define IPVLAN_F_VEPA 2

static void netlink_add_ipvlan(struct nlmsg* nlmsg, int sock, const char* name,
                               const char* link, uint16_t mode, uint16_t flags)
{
  netlink_add_device_impl(nlmsg, "ipvlan", name, false);
  netlink_nest(nlmsg, IFLA_INFO_DATA);
  netlink_attr(nlmsg, IFLA_IPVLAN_MODE, &mode, sizeof(mode));
  netlink_attr(nlmsg, IFLA_IPVLAN_FLAGS, &flags, sizeof(flags));
  netlink_done(nlmsg);
  netlink_done(nlmsg);
  int ifindex = if_nametoindex(link);
  netlink_attr(nlmsg, IFLA_LINK, &ifindex, sizeof(ifindex));
  int err = netlink_send(nlmsg, sock);
  if (err < 0) {
  }
}

static void netlink_device_change(struct nlmsg* nlmsg, int sock,
                                  const char* name, bool up, const char* master,
                                  const void* mac, int macsize,
                                  const char* new_name)
{
  struct ifinfomsg hdr;
  memset(&hdr, 0, sizeof(hdr));
  if (up)
    hdr.ifi_flags = hdr.ifi_change = IFF_UP;
  hdr.ifi_index = if_nametoindex(name);
  netlink_init(nlmsg, RTM_NEWLINK, 0, &hdr, sizeof(hdr));
  if (new_name)
    netlink_attr(nlmsg, IFLA_IFNAME, new_name, strlen(new_name));
  if (master) {
    int ifindex = if_nametoindex(master);
    netlink_attr(nlmsg, IFLA_MASTER, &ifindex, sizeof(ifindex));
  }
  if (macsize)
    netlink_attr(nlmsg, IFLA_ADDRESS, mac, macsize);
  int err = netlink_send(nlmsg, sock);
  if (err < 0) {
  }
}

static int netlink_add_addr(struct nlmsg* nlmsg, int sock, const char* dev,
                            const void* addr, int addrsize)
{
  struct ifaddrmsg hdr;
  memset(&hdr, 0, sizeof(hdr));
  hdr.ifa_family = addrsize == 4 ? AF_INET : AF_INET6;
  hdr.ifa_prefixlen = addrsize == 4 ? 24 : 120;
  hdr.ifa_scope = RT_SCOPE_UNIVERSE;
  hdr.ifa_index = if_nametoindex(dev);
  netlink_init(nlmsg, RTM_NEWADDR, NLM_F_CREATE | NLM_F_REPLACE, &hdr,
               sizeof(hdr));
  netlink_attr(nlmsg, IFA_LOCAL, addr, addrsize);
  netlink_attr(nlmsg, IFA_ADDRESS, addr, addrsize);
  return netlink_send(nlmsg, sock);
}

static void netlink_add_addr4(struct nlmsg* nlmsg, int sock, const char* dev,
                              const char* addr)
{
  struct in_addr in_addr;
  inet_pton(AF_INET, addr, &in_addr);
  int err = netlink_add_addr(nlmsg, sock, dev, &in_addr, sizeof(in_addr));
  if (err < 0) {
  }
}

static void netlink_add_addr6(struct nlmsg* nlmsg, int sock, const char* dev,
                              const char* addr)
{
  struct in6_addr in6_addr;
  inet_pton(AF_INET6, addr, &in6_addr);
  int err = netlink_add_addr(nlmsg, sock, dev, &in6_addr, sizeof(in6_addr));
  if (err < 0) {
  }
}

static void netlink_add_neigh(struct nlmsg* nlmsg, int sock, const char* name,
                              const void* addr, int addrsize, const void* mac,
                              int macsize)
{
  struct ndmsg hdr;
  memset(&hdr, 0, sizeof(hdr));
  hdr.ndm_family = addrsize == 4 ? AF_INET : AF_INET6;
  hdr.ndm_ifindex = if_nametoindex(name);
  hdr.ndm_state = NUD_PERMANENT;
  netlink_init(nlmsg, RTM_NEWNEIGH, NLM_F_EXCL | NLM_F_CREATE, &hdr,
               sizeof(hdr));
  netlink_attr(nlmsg, NDA_DST, addr, addrsize);
  netlink_attr(nlmsg, NDA_LLADDR, mac, macsize);
  int err = netlink_send(nlmsg, sock);
  if (err < 0) {
  }
}

static struct nlmsg nlmsg;

static int tunfd = -1;

#define TUN_IFACE "syz_tun"
#define LOCAL_MAC 0xaaaaaaaaaaaa
#define REMOTE_MAC 0xaaaaaaaaaabb
#define LOCAL_IPV4 "172.20.20.170"
#define REMOTE_IPV4 "172.20.20.187"
#define LOCAL_IPV6 "fe80::aa"
#define REMOTE_IPV6 "fe80::bb"

#define IFF_NAPI 0x0010
static void correct_dev_net_tun(void)
{
  struct stat st;
  if (stat("/dev/net/tun", &st) == 0) {
    if (S_ISCHR(st.st_mode) && major(st.st_rdev) == 10 &&
        minor(st.st_rdev) == 200)
      return;
    if (unlink("/dev/net/tun")) {
    }
  }
  if (mkdir("/dev/net", 0755) && errno != EEXIST) {
  }
  if (mknod("/dev/net/tun", S_IFCHR | 0666, makedev(10, 200))) {
  }
  if (chmod("/dev/net/tun", 0666)) {
  }
}

static void initialize_tun(void)
{
  correct_dev_net_tun();
  tunfd = open("/dev/net/tun", O_RDWR | O_NONBLOCK);
  if (tunfd == -1) {
    printf("tun: can't open /dev/net/tun: please enable CONFIG_TUN=y\n");
    printf("otherwise fuzzing or reproducing might not work as intended\n");
    return;
  }
  const int kTunFd = 200;
  if (dup2(tunfd, kTunFd) < 0)
    exit(1);
  close(tunfd);
  tunfd = kTunFd;
  struct ifreq ifr;
  memset(&ifr, 0, sizeof(ifr));
  strncpy(ifr.ifr_name, TUN_IFACE, IFNAMSIZ);
  ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
  if (ioctl(tunfd, TUNSETIFF, (void*)&ifr) < 0) {
    exit(1);
  }
  char sysctl[64];
  sprintf(sysctl, "/proc/sys/net/ipv6/conf/%s/accept_dad", TUN_IFACE);
  write_file(sysctl, "0");
  sprintf(sysctl, "/proc/sys/net/ipv6/conf/%s/router_solicitations", TUN_IFACE);
  write_file(sysctl, "0");
  int sock = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
  if (sock == -1)
    exit(1);
  netlink_add_addr4(&nlmsg, sock, TUN_IFACE, LOCAL_IPV4);
  netlink_add_addr6(&nlmsg, sock, TUN_IFACE, LOCAL_IPV6);
  uint64_t macaddr = REMOTE_MAC;
  struct in_addr in_addr;
  inet_pton(AF_INET, REMOTE_IPV4, &in_addr);
  netlink_add_neigh(&nlmsg, sock, TUN_IFACE, &in_addr, sizeof(in_addr),
                    &macaddr, ETH_ALEN);
  struct in6_addr in6_addr;
  inet_pton(AF_INET6, REMOTE_IPV6, &in6_addr);
  netlink_add_neigh(&nlmsg, sock, TUN_IFACE, &in6_addr, sizeof(in6_addr),
                    &macaddr, ETH_ALEN);
  macaddr = LOCAL_MAC;
  netlink_device_change(&nlmsg, sock, TUN_IFACE, true, 0, &macaddr, ETH_ALEN,
                        NULL);
  close(sock);
}

#define DEVLINK_FAMILY_NAME "devlink"

#define DEVLINK_CMD_PORT_GET 5
#define DEVLINK_ATTR_BUS_NAME 1
#define DEVLINK_ATTR_DEV_NAME 2
#define DEVLINK_ATTR_NETDEV_NAME 7

static struct nlmsg nlmsg2;

static void initialize_devlink_ports(const char* bus_name, const char* dev_name,
                                     const char* netdev_prefix)
{
  struct genlmsghdr genlhdr;
  int len, total_len, id, err, offset;
  uint16_t netdev_index;
  int sock = socket(AF_NETLINK, SOCK_RAW, NETLINK_GENERIC);
  if (sock == -1)
    exit(1);
  int rtsock = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
  if (rtsock == -1)
    exit(1);
  id = netlink_query_family_id(&nlmsg, sock, DEVLINK_FAMILY_NAME, true);
  if (id == -1)
    goto error;
  memset(&genlhdr, 0, sizeof(genlhdr));
  genlhdr.cmd = DEVLINK_CMD_PORT_GET;
  netlink_init(&nlmsg, id, NLM_F_DUMP, &genlhdr, sizeof(genlhdr));
  netlink_attr(&nlmsg, DEVLINK_ATTR_BUS_NAME, bus_name, strlen(bus_name) + 1);
  netlink_attr(&nlmsg, DEVLINK_ATTR_DEV_NAME, dev_name, strlen(dev_name) + 1);
  err = netlink_send_ext(&nlmsg, sock, id, &total_len, true);
  if (err < 0) {
    goto error;
  }
  offset = 0;
  netdev_index = 0;
  while ((len = netlink_next_msg(&nlmsg, offset, total_len)) != -1) {
    struct nlattr* attr = (struct nlattr*)(nlmsg.buf + offset + NLMSG_HDRLEN +
                                           NLMSG_ALIGN(sizeof(genlhdr)));
    for (; (char*)attr < nlmsg.buf + offset + len;
         attr = (struct nlattr*)((char*)attr + NLMSG_ALIGN(attr->nla_len))) {
      if (attr->nla_type == DEVLINK_ATTR_NETDEV_NAME) {
        char* port_name;
        char netdev_name[IFNAMSIZ];
        port_name = (char*)(attr + 1);
        snprintf(netdev_name, sizeof(netdev_name), "%s%d", netdev_prefix,
                 netdev_index);
        netlink_device_change(&nlmsg2, rtsock, port_name, true, 0, 0, 0,
                              netdev_name);
        break;
      }
    }
    offset += len;
    netdev_index++;
  }
error:
  close(rtsock);
  close(sock);
}

#define DEV_IPV4 "172.20.20.%d"
#define DEV_IPV6 "fe80::%02x"
#define DEV_MAC 0x00aaaaaaaaaa

static void netdevsim_add(unsigned int addr, unsigned int port_count)
{
  write_file("/sys/bus/netdevsim/del_device", "%u", addr);
  if (write_file("/sys/bus/netdevsim/new_device", "%u %u", addr, port_count)) {
    char buf[32];
    snprintf(buf, sizeof(buf), "netdevsim%d", addr);
    initialize_devlink_ports("netdevsim", buf, "netdevsim");
  }
}

#define WG_GENL_NAME "wireguard"
enum wg_cmd {
  WG_CMD_GET_DEVICE,
  WG_CMD_SET_DEVICE,
};
enum wgdevice_attribute {
  WGDEVICE_A_UNSPEC,
  WGDEVICE_A_IFINDEX,
  WGDEVICE_A_IFNAME,
  WGDEVICE_A_PRIVATE_KEY,
  WGDEVICE_A_PUBLIC_KEY,
  WGDEVICE_A_FLAGS,
  WGDEVICE_A_LISTEN_PORT,
  WGDEVICE_A_FWMARK,
  WGDEVICE_A_PEERS,
};
enum wgpeer_attribute {
  WGPEER_A_UNSPEC,
  WGPEER_A_PUBLIC_KEY,
  WGPEER_A_PRESHARED_KEY,
  WGPEER_A_FLAGS,
  WGPEER_A_ENDPOINT,
  WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL,
  WGPEER_A_LAST_HANDSHAKE_TIME,
  WGPEER_A_RX_BYTES,
  WGPEER_A_TX_BYTES,
  WGPEER_A_ALLOWEDIPS,
  WGPEER_A_PROTOCOL_VERSION,
};
enum wgallowedip_attribute {
  WGALLOWEDIP_A_UNSPEC,
  WGALLOWEDIP_A_FAMILY,
  WGALLOWEDIP_A_IPADDR,
  WGALLOWEDIP_A_CIDR_MASK,
};

static void netlink_wireguard_setup(void)
{
  const char ifname_a[] = "wg0";
  const char ifname_b[] = "wg1";
  const char ifname_c[] = "wg2";
  const char private_a[] =
      "\xa0\x5c\xa8\x4f\x6c\x9c\x8e\x38\x53\xe2\xfd\x7a\x70\xae\x0f\xb2\x0f\xa1"
      "\x52\x60\x0c\xb0\x08\x45\x17\x4f\x08\x07\x6f\x8d\x78\x43";
  const char private_b[] =
      "\xb0\x80\x73\xe8\xd4\x4e\x91\xe3\xda\x92\x2c\x22\x43\x82\x44\xbb\x88\x5c"
      "\x69\xe2\x69\xc8\xe9\xd8\x35\xb1\x14\x29\x3a\x4d\xdc\x6e";
  const char private_c[] =
      "\xa0\xcb\x87\x9a\x47\xf5\xbc\x64\x4c\x0e\x69\x3f\xa6\xd0\x31\xc7\x4a\x15"
      "\x53\xb6\xe9\x01\xb9\xff\x2f\x51\x8c\x78\x04\x2f\xb5\x42";
  const char public_a[] =
      "\x97\x5c\x9d\x81\xc9\x83\xc8\x20\x9e\xe7\x81\x25\x4b\x89\x9f\x8e\xd9\x25"
      "\xae\x9f\x09\x23\xc2\x3c\x62\xf5\x3c\x57\xcd\xbf\x69\x1c";
  const char public_b[] =
      "\xd1\x73\x28\x99\xf6\x11\xcd\x89\x94\x03\x4d\x7f\x41\x3d\xc9\x57\x63\x0e"
      "\x54\x93\xc2\x85\xac\xa4\x00\x65\xcb\x63\x11\xbe\x69\x6b";
  const char public_c[] =
      "\xf4\x4d\xa3\x67\xa8\x8e\xe6\x56\x4f\x02\x02\x11\x45\x67\x27\x08\x2f\x5c"
      "\xeb\xee\x8b\x1b\xf5\xeb\x73\x37\x34\x1b\x45\x9b\x39\x22";
  const uint16_t listen_a = 20001;
  const uint16_t listen_b = 20002;
  const uint16_t listen_c = 20003;
  const uint16_t af_inet = AF_INET;
  const uint16_t af_inet6 = AF_INET6;
  const struct sockaddr_in endpoint_b_v4 = {
      .sin_family = AF_INET,
      .sin_port = htons(listen_b),
      .sin_addr = {htonl(INADDR_LOOPBACK)}};
  const struct sockaddr_in endpoint_c_v4 = {
      .sin_family = AF_INET,
      .sin_port = htons(listen_c),
      .sin_addr = {htonl(INADDR_LOOPBACK)}};
  struct sockaddr_in6 endpoint_a_v6 = {.sin6_family = AF_INET6,
                                       .sin6_port = htons(listen_a)};
  endpoint_a_v6.sin6_addr = in6addr_loopback;
  struct sockaddr_in6 endpoint_c_v6 = {.sin6_family = AF_INET6,
                                       .sin6_port = htons(listen_c)};
  endpoint_c_v6.sin6_addr = in6addr_loopback;
  const struct in_addr first_half_v4 = {0};
  const struct in_addr second_half_v4 = {(uint32_t)htonl(128 << 24)};
  const struct in6_addr first_half_v6 = {{{0}}};
  const struct in6_addr second_half_v6 = {{{0x80}}};
  const uint8_t half_cidr = 1;
  const uint16_t persistent_keepalives[] = {1, 3, 7, 9, 14, 19};
  struct genlmsghdr genlhdr = {.cmd = WG_CMD_SET_DEVICE, .version = 1};
  int sock;
  int id, err;
  sock = socket(AF_NETLINK, SOCK_RAW, NETLINK_GENERIC);
  if (sock == -1) {
    return;
  }
  id = netlink_query_family_id(&nlmsg, sock, WG_GENL_NAME, true);
  if (id == -1)
    goto error;
  netlink_init(&nlmsg, id, 0, &genlhdr, sizeof(genlhdr));
  netlink_attr(&nlmsg, WGDEVICE_A_IFNAME, ifname_a, strlen(ifname_a) + 1);
  netlink_attr(&nlmsg, WGDEVICE_A_PRIVATE_KEY, private_a, 32);
  netlink_attr(&nlmsg, WGDEVICE_A_LISTEN_PORT, &listen_a, 2);
  netlink_nest(&nlmsg, NLA_F_NESTED | WGDEVICE_A_PEERS);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGPEER_A_PUBLIC_KEY, public_b, 32);
  netlink_attr(&nlmsg, WGPEER_A_ENDPOINT, &endpoint_b_v4,
               sizeof(endpoint_b_v4));
  netlink_attr(&nlmsg, WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL,
               &persistent_keepalives[0], 2);
  netlink_nest(&nlmsg, NLA_F_NESTED | WGPEER_A_ALLOWEDIPS);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_FAMILY, &af_inet, 2);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_IPADDR, &first_half_v4,
               sizeof(first_half_v4));
  netlink_attr(&nlmsg, WGALLOWEDIP_A_CIDR_MASK, &half_cidr, 1);
  netlink_done(&nlmsg);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_FAMILY, &af_inet6, 2);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_IPADDR, &first_half_v6,
               sizeof(first_half_v6));
  netlink_attr(&nlmsg, WGALLOWEDIP_A_CIDR_MASK, &half_cidr, 1);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGPEER_A_PUBLIC_KEY, public_c, 32);
  netlink_attr(&nlmsg, WGPEER_A_ENDPOINT, &endpoint_c_v6,
               sizeof(endpoint_c_v6));
  netlink_attr(&nlmsg, WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL,
               &persistent_keepalives[1], 2);
  netlink_nest(&nlmsg, NLA_F_NESTED | WGPEER_A_ALLOWEDIPS);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_FAMILY, &af_inet, 2);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_IPADDR, &second_half_v4,
               sizeof(second_half_v4));
  netlink_attr(&nlmsg, WGALLOWEDIP_A_CIDR_MASK, &half_cidr, 1);
  netlink_done(&nlmsg);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_FAMILY, &af_inet6, 2);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_IPADDR, &second_half_v6,
               sizeof(second_half_v6));
  netlink_attr(&nlmsg, WGALLOWEDIP_A_CIDR_MASK, &half_cidr, 1);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  err = netlink_send(&nlmsg, sock);
  if (err < 0) {
  }
  netlink_init(&nlmsg, id, 0, &genlhdr, sizeof(genlhdr));
  netlink_attr(&nlmsg, WGDEVICE_A_IFNAME, ifname_b, strlen(ifname_b) + 1);
  netlink_attr(&nlmsg, WGDEVICE_A_PRIVATE_KEY, private_b, 32);
  netlink_attr(&nlmsg, WGDEVICE_A_LISTEN_PORT, &listen_b, 2);
  netlink_nest(&nlmsg, NLA_F_NESTED | WGDEVICE_A_PEERS);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGPEER_A_PUBLIC_KEY, public_a, 32);
  netlink_attr(&nlmsg, WGPEER_A_ENDPOINT, &endpoint_a_v6,
               sizeof(endpoint_a_v6));
  netlink_attr(&nlmsg, WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL,
               &persistent_keepalives[2], 2);
  netlink_nest(&nlmsg, NLA_F_NESTED | WGPEER_A_ALLOWEDIPS);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_FAMILY, &af_inet, 2);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_IPADDR, &first_half_v4,
               sizeof(first_half_v4));
  netlink_attr(&nlmsg, WGALLOWEDIP_A_CIDR_MASK, &half_cidr, 1);
  netlink_done(&nlmsg);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_FAMILY, &af_inet6, 2);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_IPADDR, &first_half_v6,
               sizeof(first_half_v6));
  netlink_attr(&nlmsg, WGALLOWEDIP_A_CIDR_MASK, &half_cidr, 1);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGPEER_A_PUBLIC_KEY, public_c, 32);
  netlink_attr(&nlmsg, WGPEER_A_ENDPOINT, &endpoint_c_v4,
               sizeof(endpoint_c_v4));
  netlink_attr(&nlmsg, WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL,
               &persistent_keepalives[3], 2);
  netlink_nest(&nlmsg, NLA_F_NESTED | WGPEER_A_ALLOWEDIPS);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_FAMILY, &af_inet, 2);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_IPADDR, &second_half_v4,
               sizeof(second_half_v4));
  netlink_attr(&nlmsg, WGALLOWEDIP_A_CIDR_MASK, &half_cidr, 1);
  netlink_done(&nlmsg);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_FAMILY, &af_inet6, 2);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_IPADDR, &second_half_v6,
               sizeof(second_half_v6));
  netlink_attr(&nlmsg, WGALLOWEDIP_A_CIDR_MASK, &half_cidr, 1);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  err = netlink_send(&nlmsg, sock);
  if (err < 0) {
  }
  netlink_init(&nlmsg, id, 0, &genlhdr, sizeof(genlhdr));
  netlink_attr(&nlmsg, WGDEVICE_A_IFNAME, ifname_c, strlen(ifname_c) + 1);
  netlink_attr(&nlmsg, WGDEVICE_A_PRIVATE_KEY, private_c, 32);
  netlink_attr(&nlmsg, WGDEVICE_A_LISTEN_PORT, &listen_c, 2);
  netlink_nest(&nlmsg, NLA_F_NESTED | WGDEVICE_A_PEERS);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGPEER_A_PUBLIC_KEY, public_a, 32);
  netlink_attr(&nlmsg, WGPEER_A_ENDPOINT, &endpoint_a_v6,
               sizeof(endpoint_a_v6));
  netlink_attr(&nlmsg, WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL,
               &persistent_keepalives[4], 2);
  netlink_nest(&nlmsg, NLA_F_NESTED | WGPEER_A_ALLOWEDIPS);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_FAMILY, &af_inet, 2);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_IPADDR, &first_half_v4,
               sizeof(first_half_v4));
  netlink_attr(&nlmsg, WGALLOWEDIP_A_CIDR_MASK, &half_cidr, 1);
  netlink_done(&nlmsg);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_FAMILY, &af_inet6, 2);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_IPADDR, &first_half_v6,
               sizeof(first_half_v6));
  netlink_attr(&nlmsg, WGALLOWEDIP_A_CIDR_MASK, &half_cidr, 1);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGPEER_A_PUBLIC_KEY, public_b, 32);
  netlink_attr(&nlmsg, WGPEER_A_ENDPOINT, &endpoint_b_v4,
               sizeof(endpoint_b_v4));
  netlink_attr(&nlmsg, WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL,
               &persistent_keepalives[5], 2);
  netlink_nest(&nlmsg, NLA_F_NESTED | WGPEER_A_ALLOWEDIPS);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_FAMILY, &af_inet, 2);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_IPADDR, &second_half_v4,
               sizeof(second_half_v4));
  netlink_attr(&nlmsg, WGALLOWEDIP_A_CIDR_MASK, &half_cidr, 1);
  netlink_done(&nlmsg);
  netlink_nest(&nlmsg, NLA_F_NESTED | 0);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_FAMILY, &af_inet6, 2);
  netlink_attr(&nlmsg, WGALLOWEDIP_A_IPADDR, &second_half_v6,
               sizeof(second_half_v6));
  netlink_attr(&nlmsg, WGALLOWEDIP_A_CIDR_MASK, &half_cidr, 1);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  netlink_done(&nlmsg);
  err = netlink_send(&nlmsg, sock);
  if (err < 0) {
  }

error:
  close(sock);
}

static void initialize_netdevices(void)
{
  char netdevsim[16];
  sprintf(netdevsim, "netdevsim%d", (int)procid);
  struct {
    const char* type;
    const char* dev;
  } devtypes[] = {
      {"ip6gretap", "ip6gretap0"}, {"bridge", "bridge0"}, {"vcan", "vcan0"},
      {"bond", "bond0"},           {"team", "team0"},     {"dummy", "dummy0"},
      {"nlmon", "nlmon0"},         {"caif", "caif0"},     {"batadv", "batadv0"},
      {"vxcan", "vxcan1"},         {"veth", 0},           {"wireguard", "wg0"},
      {"wireguard", "wg1"},        {"wireguard", "wg2"},
  };
  const char* devmasters[] = {"bridge", "bond", "team", "batadv"};
  struct {
    const char* name;
    int macsize;
    bool noipv6;
  } devices[] = {
      {"lo", ETH_ALEN},
      {"sit0", 0},
      {"bridge0", ETH_ALEN},
      {"vcan0", 0, true},
      {"tunl0", 0},
      {"gre0", 0},
      {"gretap0", ETH_ALEN},
      {"ip_vti0", 0},
      {"ip6_vti0", 0},
      {"ip6tnl0", 0},
      {"ip6gre0", 0},
      {"ip6gretap0", ETH_ALEN},
      {"erspan0", ETH_ALEN},
      {"bond0", ETH_ALEN},
      {"veth0", ETH_ALEN},
      {"veth1", ETH_ALEN},
      {"team0", ETH_ALEN},
      {"veth0_to_bridge", ETH_ALEN},
      {"veth1_to_bridge", ETH_ALEN},
      {"veth0_to_bond", ETH_ALEN},
      {"veth1_to_bond", ETH_ALEN},
      {"veth0_to_team", ETH_ALEN},
      {"veth1_to_team", ETH_ALEN},
      {"veth0_to_hsr", ETH_ALEN},
      {"veth1_to_hsr", ETH_ALEN},
      {"hsr0", 0},
      {"dummy0", ETH_ALEN},
      {"nlmon0", 0},
      {"vxcan0", 0, true},
      {"vxcan1", 0, true},
      {"caif0", ETH_ALEN},
      {"batadv0", ETH_ALEN},
      {netdevsim, ETH_ALEN},
      {"xfrm0", ETH_ALEN},
      {"veth0_virt_wifi", ETH_ALEN},
      {"veth1_virt_wifi", ETH_ALEN},
      {"virt_wifi0", ETH_ALEN},
      {"veth0_vlan", ETH_ALEN},
      {"veth1_vlan", ETH_ALEN},
      {"vlan0", ETH_ALEN},
      {"vlan1", ETH_ALEN},
      {"macvlan0", ETH_ALEN},
      {"macvlan1", ETH_ALEN},
      {"ipvlan0", ETH_ALEN},
      {"ipvlan1", ETH_ALEN},
      {"veth0_macvtap", ETH_ALEN},
      {"veth1_macvtap", ETH_ALEN},
      {"macvtap0", ETH_ALEN},
      {"macsec0", ETH_ALEN},
      {"veth0_to_batadv", ETH_ALEN},
      {"veth1_to_batadv", ETH_ALEN},
      {"batadv_slave_0", ETH_ALEN},
      {"batadv_slave_1", ETH_ALEN},
      {"geneve0", ETH_ALEN},
      {"geneve1", ETH_ALEN},
      {"wg0", 0},
      {"wg1", 0},
      {"wg2", 0},
  };
  int sock = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
  if (sock == -1)
    exit(1);
  unsigned i;
  for (i = 0; i < sizeof(devtypes) / sizeof(devtypes[0]); i++)
    netlink_add_device(&nlmsg, sock, devtypes[i].type, devtypes[i].dev);
  for (i = 0; i < sizeof(devmasters) / (sizeof(devmasters[0])); i++) {
    char master[32], slave0[32], veth0[32], slave1[32], veth1[32];
    sprintf(slave0, "%s_slave_0", devmasters[i]);
    sprintf(veth0, "veth0_to_%s", devmasters[i]);
    netlink_add_veth(&nlmsg, sock, slave0, veth0);
    sprintf(slave1, "%s_slave_1", devmasters[i]);
    sprintf(veth1, "veth1_to_%s", devmasters[i]);
    netlink_add_veth(&nlmsg, sock, slave1, veth1);
    sprintf(master, "%s0", devmasters[i]);
    netlink_device_change(&nlmsg, sock, slave0, false, master, 0, 0, NULL);
    netlink_device_change(&nlmsg, sock, slave1, false, master, 0, 0, NULL);
  }
  netlink_add_xfrm(&nlmsg, sock, "xfrm0");
  netlink_device_change(&nlmsg, sock, "bridge_slave_0", true, 0, 0, 0, NULL);
  netlink_device_change(&nlmsg, sock, "bridge_slave_1", true, 0, 0, 0, NULL);
  netlink_add_veth(&nlmsg, sock, "hsr_slave_0", "veth0_to_hsr");
  netlink_add_veth(&nlmsg, sock, "hsr_slave_1", "veth1_to_hsr");
  netlink_add_hsr(&nlmsg, sock, "hsr0", "hsr_slave_0", "hsr_slave_1");
  netlink_device_change(&nlmsg, sock, "hsr_slave_0", true, 0, 0, 0, NULL);
  netlink_device_change(&nlmsg, sock, "hsr_slave_1", true, 0, 0, 0, NULL);
  netlink_add_veth(&nlmsg, sock, "veth0_virt_wifi", "veth1_virt_wifi");
  netlink_add_linked(&nlmsg, sock, "virt_wifi", "virt_wifi0",
                     "veth1_virt_wifi");
  netlink_add_veth(&nlmsg, sock, "veth0_vlan", "veth1_vlan");
  netlink_add_vlan(&nlmsg, sock, "vlan0", "veth0_vlan", 0, htons(ETH_P_8021Q));
  netlink_add_vlan(&nlmsg, sock, "vlan1", "veth0_vlan", 1, htons(ETH_P_8021AD));
  netlink_add_macvlan(&nlmsg, sock, "macvlan0", "veth1_vlan");
  netlink_add_macvlan(&nlmsg, sock, "macvlan1", "veth1_vlan");
  netlink_add_ipvlan(&nlmsg, sock, "ipvlan0", "veth0_vlan", IPVLAN_MODE_L2, 0);
  netlink_add_ipvlan(&nlmsg, sock, "ipvlan1", "veth0_vlan", IPVLAN_MODE_L3S,
                     IPVLAN_F_VEPA);
  netlink_add_veth(&nlmsg, sock, "veth0_macvtap", "veth1_macvtap");
  netlink_add_linked(&nlmsg, sock, "macvtap", "macvtap0", "veth0_macvtap");
  netlink_add_linked(&nlmsg, sock, "macsec", "macsec0", "veth1_macvtap");
  char addr[32];
  sprintf(addr, DEV_IPV4, 14 + 10);
  struct in_addr geneve_addr4;
  if (inet_pton(AF_INET, addr, &geneve_addr4) <= 0)
    exit(1);
  struct in6_addr geneve_addr6;
  if (inet_pton(AF_INET6, "fc00::01", &geneve_addr6) <= 0)
    exit(1);
  netlink_add_geneve(&nlmsg, sock, "geneve0", 0, &geneve_addr4, 0);
  netlink_add_geneve(&nlmsg, sock, "geneve1", 1, 0, &geneve_addr6);
  netdevsim_add((int)procid, 4);
  netlink_wireguard_setup();
  for (i = 0; i < sizeof(devices) / (sizeof(devices[0])); i++) {
    char addr[32];
    sprintf(addr, DEV_IPV4, i + 10);
    netlink_add_addr4(&nlmsg, sock, devices[i].name, addr);
    if (!devices[i].noipv6) {
      sprintf(addr, DEV_IPV6, i + 10);
      netlink_add_addr6(&nlmsg, sock, devices[i].name, addr);
    }
    uint64_t macaddr = DEV_MAC + ((i + 10ull) << 40);
    netlink_device_change(&nlmsg, sock, devices[i].name, true, 0, &macaddr,
                          devices[i].macsize, NULL);
  }
  close(sock);
}
static void initialize_netdevices_init(void)
{
  int sock = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
  if (sock == -1)
    exit(1);
  struct {
    const char* type;
    int macsize;
    bool noipv6;
    bool noup;
  } devtypes[] = {
      {"nr", 7, true},
      {"rose", 5, true, true},
  };
  unsigned i;
  for (i = 0; i < sizeof(devtypes) / sizeof(devtypes[0]); i++) {
    char dev[32], addr[32];
    sprintf(dev, "%s%d", devtypes[i].type, (int)procid);
    sprintf(addr, "172.30.%d.%d", i, (int)procid + 1);
    netlink_add_addr4(&nlmsg, sock, dev, addr);
    if (!devtypes[i].noipv6) {
      sprintf(addr, "fe88::%02x:%02x", i, (int)procid + 1);
      netlink_add_addr6(&nlmsg, sock, dev, addr);
    }
    int macsize = devtypes[i].macsize;
    uint64_t macaddr = 0xbbbbbb +
                       ((unsigned long long)i << (8 * (macsize - 2))) +
                       (procid << (8 * (macsize - 1)));
    netlink_device_change(&nlmsg, sock, dev, !devtypes[i].noup, 0, &macaddr,
                          macsize, NULL);
  }
  close(sock);
}

static int read_tun(char* data, int size)
{
  if (tunfd < 0)
    return -1;
  int rv = read(tunfd, data, size);
  if (rv < 0) {
    if (errno == EAGAIN || errno == EBADF || errno == EBADFD)
      return -1;
    exit(1);
  }
  return rv;
}

static long syz_emit_ethernet(volatile long a0, volatile long a1,
                              volatile long a2)
{
  if (tunfd < 0)
    return (uintptr_t)-1;
  uint32_t length = a0;
  char* data = (char*)a1;
  return write(tunfd, data, length);
}

static void flush_tun()
{
  char data[1000];
  while (read_tun(&data[0], sizeof(data)) != -1) {
  }
}

static void setup_gadgetfs();
static void setup_binderfs();
static void setup_fusectl();
static void sandbox_common_mount_tmpfs(void)
{
  write_file("/proc/sys/fs/mount-max", "100000");
  if (mkdir("./syz-tmp", 0777))
    exit(1);
  if (mount("", "./syz-tmp", "tmpfs", 0, NULL))
    exit(1);
  if (mkdir("./syz-tmp/newroot", 0777))
    exit(1);
  if (mkdir("./syz-tmp/newroot/dev", 0700))
    exit(1);
  unsigned bind_mount_flags = MS_BIND | MS_REC | MS_PRIVATE;
  if (mount("/dev", "./syz-tmp/newroot/dev", NULL, bind_mount_flags, NULL))
    exit(1);
  if (mkdir("./syz-tmp/newroot/proc", 0700))
    exit(1);
  if (mount("syz-proc", "./syz-tmp/newroot/proc", "proc", 0, NULL))
    exit(1);
  if (mkdir("./syz-tmp/newroot/selinux", 0700))
    exit(1);
  const char* selinux_path = "./syz-tmp/newroot/selinux";
  if (mount("/selinux", selinux_path, NULL, bind_mount_flags, NULL)) {
    if (errno != ENOENT)
      exit(1);
    if (mount("/sys/fs/selinux", selinux_path, NULL, bind_mount_flags, NULL) &&
        errno != ENOENT)
      exit(1);
  }
  if (mkdir("./syz-tmp/newroot/sys", 0700))
    exit(1);
  if (mount("/sys", "./syz-tmp/newroot/sys", 0, bind_mount_flags, NULL))
    exit(1);
  if (mount("/sys/kernel/debug", "./syz-tmp/newroot/sys/kernel/debug", NULL,
            bind_mount_flags, NULL) &&
      errno != ENOENT)
    exit(1);
  if (mount("/sys/fs/smackfs", "./syz-tmp/newroot/sys/fs/smackfs", NULL,
            bind_mount_flags, NULL) &&
      errno != ENOENT)
    exit(1);
  if (mount("/proc/sys/fs/binfmt_misc",
            "./syz-tmp/newroot/proc/sys/fs/binfmt_misc", NULL, bind_mount_flags,
            NULL) &&
      errno != ENOENT)
    exit(1);
  if (mkdir("./syz-tmp/newroot/syz-inputs", 0700))
    exit(1);
  if (mount("/syz-inputs", "./syz-tmp/newroot/syz-inputs", NULL,
            bind_mount_flags | MS_RDONLY, NULL) &&
      errno != ENOENT)
    exit(1);
  if (mkdir("./syz-tmp/pivot", 0777))
    exit(1);
  if (syscall(SYS_pivot_root, "./syz-tmp", "./syz-tmp/pivot")) {
    if (chdir("./syz-tmp"))
      exit(1);
  } else {
    if (chdir("/"))
      exit(1);
    if (umount2("./pivot", MNT_DETACH))
      exit(1);
  }
  if (chroot("./newroot"))
    exit(1);
  if (chdir("/"))
    exit(1);
  setup_gadgetfs();
  setup_binderfs();
  setup_fusectl();
}

static void setup_gadgetfs()
{
  if (mkdir("/dev/gadgetfs", 0777)) {
  }
  if (mount("gadgetfs", "/dev/gadgetfs", "gadgetfs", 0, NULL)) {
  }
}

static void setup_fusectl()
{
  if (mount(0, "/sys/fs/fuse/connections", "fusectl", 0, 0)) {
  }
}

static void setup_binderfs()
{
  if (mkdir("/dev/binderfs", 0777)) {
  }
  if (mount("binder", "/dev/binderfs", "binder", 0, NULL)) {
  }
}

static void loop();

static void sandbox_common()
{
  prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
  if (getppid() == 1)
    exit(1);
  struct rlimit rlim;
  rlim.rlim_cur = rlim.rlim_max = (200 << 20);
  setrlimit(RLIMIT_AS, &rlim);
  rlim.rlim_cur = rlim.rlim_max = 32 << 20;
  setrlimit(RLIMIT_MEMLOCK, &rlim);
  rlim.rlim_cur = rlim.rlim_max = 136 << 20;
  setrlimit(RLIMIT_FSIZE, &rlim);
  rlim.rlim_cur = rlim.rlim_max = 1 << 20;
  setrlimit(RLIMIT_STACK, &rlim);
  rlim.rlim_cur = rlim.rlim_max = 128 << 20;
  setrlimit(RLIMIT_CORE, &rlim);
  rlim.rlim_cur = rlim.rlim_max = 256;
  setrlimit(RLIMIT_NOFILE, &rlim);
  if (unshare(CLONE_NEWNS)) {
  }
  if (mount(NULL, "/", NULL, MS_REC | MS_PRIVATE, NULL)) {
  }
  if (unshare(CLONE_NEWIPC)) {
  }
  if (unshare(0x02000000)) {
  }
  if (unshare(CLONE_NEWUTS)) {
  }
  if (unshare(CLONE_SYSVSEM)) {
  }
  typedef struct {
    const char* name;
    const char* value;
  } sysctl_t;
  static const sysctl_t sysctls[] = {
      {"/proc/sys/kernel/shmmax", "16777216"},
      {"/proc/sys/kernel/shmall", "536870912"},
      {"/proc/sys/kernel/shmmni", "1024"},
      {"/proc/sys/kernel/msgmax", "8192"},
      {"/proc/sys/kernel/msgmni", "1024"},
      {"/proc/sys/kernel/msgmnb", "1024"},
      {"/proc/sys/kernel/sem", "1024 1048576 500 1024"},
  };
  unsigned i;
  for (i = 0; i < sizeof(sysctls) / sizeof(sysctls[0]); i++)
    write_file(sysctls[i].name, sysctls[i].value);
}

static int wait_for_loop(int pid)
{
  if (pid < 0)
    exit(1);
  int status = 0;
  while (waitpid(-1, &status, __WALL) != pid) {
  }
  return WEXITSTATUS(status);
}

static void drop_caps(void)
{
  struct __user_cap_header_struct cap_hdr = {};
  struct __user_cap_data_struct cap_data[2] = {};
  cap_hdr.version = _LINUX_CAPABILITY_VERSION_3;
  cap_hdr.pid = getpid();
  if (syscall(SYS_capget, &cap_hdr, &cap_data))
    exit(1);
  const int drop = (1 << CAP_SYS_PTRACE) | (1 << CAP_SYS_NICE);
  cap_data[0].effective &= ~drop;
  cap_data[0].permitted &= ~drop;
  cap_data[0].inheritable &= ~drop;
  if (syscall(SYS_capset, &cap_hdr, &cap_data))
    exit(1);
}

static int real_uid;
static int real_gid;
__attribute__((aligned(64 << 10))) static char sandbox_stack[1 << 20];

static int namespace_sandbox_proc(void* arg)
{
  sandbox_common();
  write_file("/proc/self/setgroups", "deny");
  if (!write_file("/proc/self/uid_map", "0 %d 1\n", real_uid))
    exit(1);
  if (!write_file("/proc/self/gid_map", "0 %d 1\n", real_gid))
    exit(1);
  initialize_netdevices_init();
  if (unshare(CLONE_NEWNET))
    exit(1);
  write_file("/proc/sys/net/ipv4/ping_group_range", "0 65535");
  initialize_tun();
  initialize_netdevices();
  sandbox_common_mount_tmpfs();
  drop_caps();
  loop();
  exit(1);
}

static int do_sandbox_namespace(void)
{
  real_uid = getuid();
  real_gid = getgid();
  mprotect(sandbox_stack, 4096, PROT_NONE);
  int pid =
      clone(namespace_sandbox_proc, &sandbox_stack[sizeof(sandbox_stack) - 64],
            CLONE_NEWUSER | CLONE_NEWPID, 0);
  return wait_for_loop(pid);
}

#define FS_IOC_SETFLAGS _IOW('f', 2, long)
static void remove_dir(const char* dir)
{
  int iter = 0;
  DIR* dp = 0;
  const int umount_flags = MNT_FORCE | UMOUNT_NOFOLLOW;

retry:
  while (umount2(dir, umount_flags) == 0) {
  }
  dp = opendir(dir);
  if (dp == NULL) {
    if (errno == EMFILE) {
      exit(1);
    }
    exit(1);
  }
  struct dirent* ep = 0;
  while ((ep = readdir(dp))) {
    if (strcmp(ep->d_name, ".") == 0 || strcmp(ep->d_name, "..") == 0)
      continue;
    char filename[FILENAME_MAX];
    snprintf(filename, sizeof(filename), "%s/%s", dir, ep->d_name);
    while (umount2(filename, umount_flags) == 0) {
    }
    struct stat st;
    if (lstat(filename, &st))
      exit(1);
    if (S_ISDIR(st.st_mode)) {
      remove_dir(filename);
      continue;
    }
    int i;
    for (i = 0;; i++) {
      if (unlink(filename) == 0)
        break;
      if (errno == EPERM) {
        int fd = open(filename, O_RDONLY);
        if (fd != -1) {
          long flags = 0;
          if (ioctl(fd, FS_IOC_SETFLAGS, &flags) == 0) {
          }
          close(fd);
          continue;
        }
      }
      if (errno == EROFS) {
        break;
      }
      if (errno != EBUSY || i > 100)
        exit(1);
      if (umount2(filename, umount_flags))
        exit(1);
    }
  }
  closedir(dp);
  for (int i = 0;; i++) {
    if (rmdir(dir) == 0)
      break;
    if (i < 100) {
      if (errno == EPERM) {
        int fd = open(dir, O_RDONLY);
        if (fd != -1) {
          long flags = 0;
          if (ioctl(fd, FS_IOC_SETFLAGS, &flags) == 0) {
          }
          close(fd);
          continue;
        }
      }
      if (errno == EROFS) {
        break;
      }
      if (errno == EBUSY) {
        if (umount2(dir, umount_flags))
          exit(1);
        continue;
      }
      if (errno == ENOTEMPTY) {
        if (iter < 100) {
          iter++;
          goto retry;
        }
      }
    }
    exit(1);
  }
}

static void kill_and_wait(int pid, int* status)
{
  kill(-pid, SIGKILL);
  kill(pid, SIGKILL);
  for (int i = 0; i < 100; i++) {
    if (waitpid(-1, status, WNOHANG | __WALL) == pid)
      return;
    usleep(1000);
  }
  DIR* dir = opendir("/sys/fs/fuse/connections");
  if (dir) {
    for (;;) {
      struct dirent* ent = readdir(dir);
      if (!ent)
        break;
      if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0)
        continue;
      char abort[300];
      snprintf(abort, sizeof(abort), "/sys/fs/fuse/connections/%s/abort",
               ent->d_name);
      int fd = open(abort, O_WRONLY);
      if (fd == -1) {
        continue;
      }
      if (write(fd, abort, 1) < 0) {
      }
      close(fd);
    }
    closedir(dir);
  } else {
  }
  while (waitpid(-1, status, __WALL) != pid) {
  }
}

static void setup_test()
{
  prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
  setpgrp();
  write_file("/proc/self/oom_score_adj", "1000");
  flush_tun();
  if (symlink("/dev/binderfs", "./binderfs")) {
  }
}

struct thread_t {
  int created, call;
  event_t ready, done;
};

static struct thread_t threads[16];
static void execute_call(int call);
static int running;

static void* thr(void* arg)
{
  struct thread_t* th = (struct thread_t*)arg;
  for (;;) {
    event_wait(&th->ready);
    event_reset(&th->ready);
    execute_call(th->call);
    __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED);
    event_set(&th->done);
  }
  return 0;
}

static void execute_one(void)
{
  if (write(1, "executing program\n", sizeof("executing program\n") - 1)) {
  }
  int i, call, thread;
  for (call = 0; call < 5; call++) {
    for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0]));
         thread++) {
      struct thread_t* th = &threads[thread];
      if (!th->created) {
        th->created = 1;
        event_init(&th->ready);
        event_init(&th->done);
        event_set(&th->done);
        thread_start(thr, th);
      }
      if (!event_isset(&th->done))
        continue;
      event_reset(&th->done);
      th->call = call;
      __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED);
      event_set(&th->ready);
      if (call == 1)
        break;
      event_timedwait(&th->done, 50);
      break;
    }
  }
  for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++)
    sleep_ms(1);
}

static void execute_one(void);

#define WAIT_FLAGS __WALL

static void loop(void)
{
  int iter = 0;
  for (;; iter++) {
    char cwdbuf[32];
    sprintf(cwdbuf, "./%d", iter);
    if (mkdir(cwdbuf, 0777))
      exit(1);
    int pid = fork();
    if (pid < 0)
      exit(1);
    if (pid == 0) {
      if (chdir(cwdbuf))
        exit(1);
      setup_test();
      execute_one();
      exit(0);
    }
    int status = 0;
    uint64_t start = current_time_ms();
    for (;;) {
      sleep_ms(10);
      if (waitpid(-1, &status, WNOHANG | WAIT_FLAGS) == pid)
        break;
      if (current_time_ms() - start < 5000)
        continue;
      kill_and_wait(pid, &status);
      break;
    }
    remove_dir(cwdbuf);
  }
}

uint64_t r[1] = {0xffffffffffffffff};

void execute_call(int call)
{
  intptr_t res = 0;
  switch (call) {
  case 0:
    //  socket$nl_netfilter arguments: [
    //    domain: const = 0x10 (8 bytes)
    //    type: const = 0x3 (8 bytes)
    //    proto: const = 0xc (4 bytes)
    //  ]
    //  returns sock_nl_netfilter
    res = syscall(__NR_socket, /*domain=*/0x10ul, /*type=*/3ul, /*proto=*/0xc);
    if (res != -1)
      r[0] = res;
    break;
  case 1:
    //  syz_emit_ethernet arguments: [
    //    len: len = 0x3a (8 bytes)
    //    packet: ptr[in, eth_packet] {
    //      eth_packet {
    //        dst_mac: union mac_addr {
    //          local: mac_addr_t[const[0xaa, int8]] {
    //            a0: buffer: {aa aa aa aa aa} (length 0x5)
    //            a1: const = 0xaa (1 bytes)
    //          }
    //        }
    //        src_mac: union mac_addr {
    //          random: buffer: {cd 7c 1e 70 5d 31} (length 0x6)
    //        }
    //        vtag: union optional[vlan_tag] {
    //          void: buffer: {} (length 0x0)
    //        }
    //        payload: eth_payload {
    //          eth2: union eth2_packet {
    //            ipv4: eth2_packet_t[ETH_P_IP, ipv4_packet] {
    //              etype: const = 0x800 (2 bytes)
    //              payload: union ipv4_packet {
    //                udp: ipv4_packet_t[const[IPPROTO_UDP, int8], udp_packet] {
    //                  header: ipv4_header[const[IPPROTO_UDP, int8]] {
    //                    ihl: bytesize4 = 0x5 (0 bytes)
    //                    version: const = 0x4 (1 bytes)
    //                    ecn: int8 = 0x0 (0 bytes)
    //                    dscp: int8 = 0x35 (1 bytes)
    //                    total_len: len = 0x2c (2 bytes)
    //                    id: int16be = 0x66 (2 bytes)
    //                    frag_off: int16be = 0x0 (2 bytes)
    //                    ttl: int8 = 0x8 (1 bytes)
    //                    protocol: const = 0x11 (1 bytes)
    //                    csum: csum = 0x0 (2 bytes)
    //                    src_ip: union ipv4_addr {
    //                      rand_addr: int32be = 0x64010101 (4 bytes)
    //                    }
    //                    dst_ip: union ipv4_addr {
    //                      local: ipv4_addr_t[const[170, int8]] {
    //                        a0: const = 0xac (1 bytes)
    //                        a1: const = 0x14 (1 bytes)
    //                        a2: const = 0x14 (1 bytes)
    //                        a3: const = 0xaa (1 bytes)
    //                      }
    //                    }
    //                    options: ipv4_options {
    //                      options: array[ipv4_option] {
    //                      }
    //                    }
    //                  }
    //                  payload: udp_packet {
    //                    src_port: int16be = 0x4e21 (2 bytes)
    //                    dst_port: int16be = 0x4e24 (2 bytes)
    //                    length: len = 0x18 (2 bytes)
    //                    csum: csum = 0x0 (2 bytes)
    //                    payload: union udp_payload {
    //                      wg: union wg_packet {
    //                        data: message_data {
    //                          type: const = 0x4 (4 bytes)
    //                          key_idx: int32 = 0x9 (4 bytes)
    //                          counter: int64 = 0x1800000000 (8 bytes)
    //                          encrypted_data: buffer: {} (length 0x0)
    //                        }
    //                      }
    //                    }
    //                  }
    //                }
    //              }
    //            }
    //          }
    //        }
    //      }
    //    }
    //    frags: nil
    //  ]
    memset((void*)0x2000000006c0, 170, 5);
    *(uint8_t*)0x2000000006c5 = 0xaa;
    memcpy((void*)0x2000000006c6, "\xcd\x7c\x1e\x70\x5d\x31", 6);
    *(uint16_t*)0x2000000006cc = htobe16(0x800);
    STORE_BY_BITMASK(uint8_t, , 0x2000000006ce, 5, 0, 4);
    STORE_BY_BITMASK(uint8_t, , 0x2000000006ce, 4, 4, 4);
    STORE_BY_BITMASK(uint8_t, , 0x2000000006cf, 0, 0, 2);
    STORE_BY_BITMASK(uint8_t, , 0x2000000006cf, 0x35, 2, 6);
    *(uint16_t*)0x2000000006d0 = htobe16(0x2c);
    *(uint16_t*)0x2000000006d2 = htobe16(0x66);
    *(uint16_t*)0x2000000006d4 = htobe16(0);
    *(uint8_t*)0x2000000006d6 = 8;
    *(uint8_t*)0x2000000006d7 = 0x11;
    *(uint16_t*)0x2000000006d8 = htobe16(0);
    *(uint32_t*)0x2000000006da = htobe32(0x64010101);
    *(uint8_t*)0x2000000006de = 0xac;
    *(uint8_t*)0x2000000006df = 0x14;
    *(uint8_t*)0x2000000006e0 = 0x14;
    *(uint8_t*)0x2000000006e1 = 0xaa;
    *(uint16_t*)0x2000000006e2 = htobe16(0x4e21);
    *(uint16_t*)0x2000000006e4 = htobe16(0x4e24);
    *(uint16_t*)0x2000000006e6 = htobe16(0x18);
    *(uint16_t*)0x2000000006e8 = htobe16(0);
    *(uint32_t*)0x2000000006ea = 4;
    *(uint32_t*)0x2000000006ee = 9;
    *(uint64_t*)0x2000000006f2 = 0x1800000000;
    struct csum_inet csum_1;
    csum_inet_init(&csum_1);
    csum_inet_update(&csum_1, (const uint8_t*)0x2000000006da, 4);
    csum_inet_update(&csum_1, (const uint8_t*)0x2000000006de, 4);
    uint16_t csum_1_chunk_2 = 0x1100;
    csum_inet_update(&csum_1, (const uint8_t*)&csum_1_chunk_2, 2);
    uint16_t csum_1_chunk_3 = 0x1800;
    csum_inet_update(&csum_1, (const uint8_t*)&csum_1_chunk_3, 2);
    csum_inet_update(&csum_1, (const uint8_t*)0x2000000006e2, 24);
    *(uint16_t*)0x2000000006e8 = csum_inet_digest(&csum_1);
    struct csum_inet csum_2;
    csum_inet_init(&csum_2);
    csum_inet_update(&csum_2, (const uint8_t*)0x2000000006ce, 20);
    *(uint16_t*)0x2000000006d8 = csum_inet_digest(&csum_2);
    syz_emit_ethernet(/*len=*/0x3a, /*packet=*/0x2000000006c0, /*frags=*/0);
    break;
  case 2:
    //  syz_emit_ethernet arguments: [
    //    len: len = 0x3a (8 bytes)
    //    packet: ptr[in, eth_packet] {
    //      eth_packet {
    //        dst_mac: union mac_addr {
    //          local: mac_addr_t[const[0xaa, int8]] {
    //            a0: buffer: {aa aa aa aa aa} (length 0x5)
    //            a1: const = 0xaa (1 bytes)
    //          }
    //        }
    //        src_mac: union mac_addr {
    //          random: buffer: {cd 7c 1e 70 5d 31} (length 0x6)
    //        }
    //        vtag: union optional[vlan_tag] {
    //          void: buffer: {} (length 0x0)
    //        }
    //        payload: eth_payload {
    //          eth2: union eth2_packet {
    //            ipv4: eth2_packet_t[ETH_P_IP, ipv4_packet] {
    //              etype: const = 0x800 (2 bytes)
    //              payload: union ipv4_packet {
    //                udp: ipv4_packet_t[const[IPPROTO_UDP, int8], udp_packet] {
    //                  header: ipv4_header[const[IPPROTO_UDP, int8]] {
    //                    ihl: bytesize4 = 0x5 (0 bytes)
    //                    version: const = 0x4 (1 bytes)
    //                    ecn: int8 = 0x0 (0 bytes)
    //                    dscp: int8 = 0x35 (1 bytes)
    //                    total_len: len = 0x2c (2 bytes)
    //                    id: int16be = 0x66 (2 bytes)
    //                    frag_off: int16be = 0x0 (2 bytes)
    //                    ttl: int8 = 0x8 (1 bytes)
    //                    protocol: const = 0x11 (1 bytes)
    //                    csum: csum = 0x0 (2 bytes)
    //                    src_ip: union ipv4_addr {
    //                      rand_addr: int32be = 0x64010101 (4 bytes)
    //                    }
    //                    dst_ip: union ipv4_addr {
    //                      local: ipv4_addr_t[const[170, int8]] {
    //                        a0: const = 0xac (1 bytes)
    //                        a1: const = 0x14 (1 bytes)
    //                        a2: const = 0x14 (1 bytes)
    //                        a3: const = 0xaa (1 bytes)
    //                      }
    //                    }
    //                    options: ipv4_options {
    //                      options: array[ipv4_option] {
    //                      }
    //                    }
    //                  }
    //                  payload: udp_packet {
    //                    src_port: int16be = 0x4e21 (2 bytes)
    //                    dst_port: int16be = 0x4e24 (2 bytes)
    //                    length: len = 0x18 (2 bytes)
    //                    csum: csum = 0x0 (2 bytes)
    //                    payload: union udp_payload {
    //                      wg: union wg_packet {
    //                        data: message_data {
    //                          type: const = 0x4 (4 bytes)
    //                          key_idx: int32 = 0x9 (4 bytes)
    //                          counter: int64 = 0x1800000000 (8 bytes)
    //                          encrypted_data: buffer: {} (length 0x0)
    //                        }
    //                      }
    //                    }
    //                  }
    //                }
    //              }
    //            }
    //          }
    //        }
    //      }
    //    }
    //    frags: nil
    //  ]
    memset((void*)0x2000000006c0, 170, 5);
    *(uint8_t*)0x2000000006c5 = 0xaa;
    memcpy((void*)0x2000000006c6, "\xcd\x7c\x1e\x70\x5d\x31", 6);
    *(uint16_t*)0x2000000006cc = htobe16(0x800);
    STORE_BY_BITMASK(uint8_t, , 0x2000000006ce, 5, 0, 4);
    STORE_BY_BITMASK(uint8_t, , 0x2000000006ce, 4, 4, 4);
    STORE_BY_BITMASK(uint8_t, , 0x2000000006cf, 0, 0, 2);
    STORE_BY_BITMASK(uint8_t, , 0x2000000006cf, 0x35, 2, 6);
    *(uint16_t*)0x2000000006d0 = htobe16(0x2c);
    *(uint16_t*)0x2000000006d2 = htobe16(0x66);
    *(uint16_t*)0x2000000006d4 = htobe16(0);
    *(uint8_t*)0x2000000006d6 = 8;
    *(uint8_t*)0x2000000006d7 = 0x11;
    *(uint16_t*)0x2000000006d8 = htobe16(0);
    *(uint32_t*)0x2000000006da = htobe32(0x64010101);
    *(uint8_t*)0x2000000006de = 0xac;
    *(uint8_t*)0x2000000006df = 0x14;
    *(uint8_t*)0x2000000006e0 = 0x14;
    *(uint8_t*)0x2000000006e1 = 0xaa;
    *(uint16_t*)0x2000000006e2 = htobe16(0x4e21);
    *(uint16_t*)0x2000000006e4 = htobe16(0x4e24);
    *(uint16_t*)0x2000000006e6 = htobe16(0x18);
    *(uint16_t*)0x2000000006e8 = htobe16(0);
    *(uint32_t*)0x2000000006ea = 4;
    *(uint32_t*)0x2000000006ee = 9;
    *(uint64_t*)0x2000000006f2 = 0x1800000000;
    struct csum_inet csum_3;
    csum_inet_init(&csum_3);
    csum_inet_update(&csum_3, (const uint8_t*)0x2000000006da, 4);
    csum_inet_update(&csum_3, (const uint8_t*)0x2000000006de, 4);
    uint16_t csum_3_chunk_2 = 0x1100;
    csum_inet_update(&csum_3, (const uint8_t*)&csum_3_chunk_2, 2);
    uint16_t csum_3_chunk_3 = 0x1800;
    csum_inet_update(&csum_3, (const uint8_t*)&csum_3_chunk_3, 2);
    csum_inet_update(&csum_3, (const uint8_t*)0x2000000006e2, 24);
    *(uint16_t*)0x2000000006e8 = csum_inet_digest(&csum_3);
    struct csum_inet csum_4;
    csum_inet_init(&csum_4);
    csum_inet_update(&csum_4, (const uint8_t*)0x2000000006ce, 20);
    *(uint16_t*)0x2000000006d8 = csum_inet_digest(&csum_4);
    syz_emit_ethernet(/*len=*/0x3a, /*packet=*/0x2000000006c0, /*frags=*/0);
    break;
  case 3:
    //  sendmsg$NFT_BATCH arguments: [
    //    fd: sock_nl_netfilter (resource)
    //    msg: ptr[in, msghdr_netlink[nft_batch_msg]] {
    //      msghdr_netlink[nft_batch_msg] {
    //        addr: nil
    //        addrlen: len = 0x0 (4 bytes)
    //        pad = 0x0 (4 bytes)
    //        vec: ptr[in, iovec[in, nft_batch_msg]] {
    //          iovec[in, nft_batch_msg] {
    //            addr: ptr[in, nft_batch_msg] {
    //              nft_batch_msg {
    //                begin: nft_nlmsghdr[NFNL_MSG_BATCH_BEGIN] {
    //                  nlmsg_len: len = 0x14 (4 bytes)
    //                  nlmsg_type: const = 0x10 (2 bytes)
    //                  nlmsg_flags: const = 0x1 (2 bytes)
    //                  nlmsg_seq: const = 0x0 (4 bytes)
    //                  nlmsg_pid: const = 0x0 (4 bytes)
    //                  hdr: nfgenmsg_nft {
    //                    nfgen_family: families = 0x0 (1 bytes)
    //                    version: const = 0x0 (1 bytes)
    //                    res_id: const = 0xa (2 bytes)
    //                  }
    //                }
    //                msgs: array[nft_batch_message] {
    //                  union nft_batch_message {
    //                    NFT_MSG_NEWTABLE:
    //                    netlink_msg_netfilter_tt[NFNL_SUBSYS_NFTABLES,
    //                    NFT_MSG_NEWTABLE, array[nft_table_policy]] {
    //                      len: len = 0x20 (4 bytes)
    //                      type: const = 0x0 (1 bytes)
    //                      subsys: const = 0xa (1 bytes)
    //                      flags: netlink_netfilter_msg_flags = 0x401 (2 bytes)
    //                      seq: const = 0x0 (4 bytes)
    //                      pid: const = 0x0 (4 bytes)
    //                      hdr: nfgenmsg {
    //                        nfgen_family: nfproto = 0x5 (1 bytes)
    //                        version: const = 0x0 (1 bytes)
    //                        res_id: int16be = 0x0 (2 bytes)
    //                      }
    //                      attrs: array[nft_table_policy] {
    //                        union nft_table_policy {
    //                          NFTA_TABLE_NAME: nlattr_t[const[NFTA_TABLE_NAME,
    //                          int16], string[nft_table_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x1 (2 bytes)
    //                            payload: buffer: {73 79 7a 61 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                      }
    //                    }
    //                  }
    //                  union nft_batch_message {
    //                    NFT_MSG_NEWCHAIN:
    //                    netlink_msg_netfilter_tt[NFNL_SUBSYS_NFTABLES,
    //                    NFT_MSG_NEWCHAIN, array[nft_chain_policy]] {
    //                      len: len = 0x60 (4 bytes)
    //                      type: const = 0x3 (1 bytes)
    //                      subsys: const = 0xa (1 bytes)
    //                      flags: netlink_netfilter_msg_flags = 0x401 (2 bytes)
    //                      seq: const = 0x0 (4 bytes)
    //                      pid: const = 0x0 (4 bytes)
    //                      hdr: nfgenmsg {
    //                        nfgen_family: nfproto = 0x5 (1 bytes)
    //                        version: const = 0x0 (1 bytes)
    //                        res_id: int16be = 0x0 (2 bytes)
    //                      }
    //                      attrs: array[nft_chain_policy] {
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_TABLE:
    //                          nlattr_t[const[NFTA_CHAIN_TABLE, int16],
    //                          string[nft_table_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x1 (2 bytes)
    //                            payload: buffer: {73 79 7a 61 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_NAME: nlattr_t[const[NFTA_CHAIN_NAME,
    //                          int16], string[nft_chain_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x3 (2 bytes)
    //                            payload: buffer: {73 79 7a 62 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_TYPE: nlattr_t[const[NFTA_CHAIN_TYPE,
    //                          int16], string[nft_chain_type]] {
    //                            nla_len: offsetof = 0xa (2 bytes)
    //                            nla_type: const = 0x7 (2 bytes)
    //                            payload: buffer: {66 69 6c 74 65 72 00}
    //                            (length 0x7) size: buffer: {} (length 0x0)
    //                          }
    //                        }
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_HOOK:
    //                          nlattr_tt[const[NFTA_CHAIN_HOOK, int16:14], 0,
    //                          1, array[nft_hook_policy]] {
    //                            nla_len: offsetof = 0x28 (2 bytes)
    //                            nla_type: const = 0x4 (1 bytes)
    //                            NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                            NLA_F_NESTED: const = 0x1 (1 bytes)
    //                            payload: array[nft_hook_policy] {
    //                              union nft_hook_policy {
    //                                NFTA_HOOK_HOOKNUM:
    //                                nlattr_tt[const[NFTA_HOOK_HOOKNUM,
    //                                int16:14], 1, 0, flags[nf_inet_hooks,
    //                                int32be]] {
    //                                  nla_len: offsetof = 0x8 (2 bytes)
    //                                  nla_type: const = 0x1 (1 bytes)
    //                                  NLA_F_NET_BYTEORDER: const = 0x1 (0
    //                                  bytes) NLA_F_NESTED: const = 0x0 (1
    //                                  bytes) payload: nf_inet_hooks = 0x1 (4
    //                                  bytes) size: buffer: {} (length 0x0)
    //                                }
    //                              }
    //                              union nft_hook_policy {
    //                                NFTA_HOOK_PRIORITY:
    //                                nlattr_tt[const[NFTA_HOOK_PRIORITY,
    //                                int16:14], 1, 0,
    //                                int32be[NF_IP_PRI_CONNTRACK:NF_IP_PRI_LAST]]
    //                                {
    //                                  nla_len: offsetof = 0x8 (2 bytes)
    //                                  nla_type: const = 0x2 (1 bytes)
    //                                  NLA_F_NET_BYTEORDER: const = 0x1 (0
    //                                  bytes) NLA_F_NESTED: const = 0x0 (1
    //                                  bytes) payload: int32be = 0x12c (4
    //                                  bytes) size: buffer: {} (length 0x0)
    //                                }
    //                              }
    //                              union nft_hook_policy {
    //                                NFTA_HOOK_DEV:
    //                                nlattr_t[const[NFTA_HOOK_DEV, int16],
    //                                devname] {
    //                                  nla_len: offsetof = 0x14 (2 bytes)
    //                                  nla_type: const = 0x3 (2 bytes)
    //                                  payload: buffer: {6c 6f 00 00 00 00 00
    //                                  00 00 00 00 00 00 00 00 00} (length
    //                                  0x10) size: buffer: {} (length 0x0)
    //                                }
    //                              }
    //                            }
    //                            size: buffer: {} (length 0x0)
    //                          }
    //                        }
    //                      }
    //                    }
    //                  }
    //                  union nft_batch_message {
    //                    NFT_MSG_NEWCHAIN:
    //                    netlink_msg_netfilter_tt[NFNL_SUBSYS_NFTABLES,
    //                    NFT_MSG_NEWCHAIN, array[nft_chain_policy]] {
    //                      len: len = 0x2c (4 bytes)
    //                      type: const = 0x3 (1 bytes)
    //                      subsys: const = 0xa (1 bytes)
    //                      flags: netlink_netfilter_msg_flags = 0x401 (2 bytes)
    //                      seq: const = 0x0 (4 bytes)
    //                      pid: const = 0x0 (4 bytes)
    //                      hdr: nfgenmsg {
    //                        nfgen_family: nfproto = 0x5 (1 bytes)
    //                        version: const = 0x0 (1 bytes)
    //                        res_id: int16be = 0x0 (2 bytes)
    //                      }
    //                      attrs: array[nft_chain_policy] {
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_TABLE:
    //                          nlattr_t[const[NFTA_CHAIN_TABLE, int16],
    //                          string[nft_table_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x1 (2 bytes)
    //                            payload: buffer: {73 79 7a 61 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_NAME: nlattr_t[const[NFTA_CHAIN_NAME,
    //                          int16], string[nft_chain_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x3 (2 bytes)
    //                            payload: buffer: {73 79 7a 65 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                      }
    //                    }
    //                  }
    //                  union nft_batch_message {
    //                    NFT_MSG_NEWCHAIN:
    //                    netlink_msg_netfilter_tt[NFNL_SUBSYS_NFTABLES,
    //                    NFT_MSG_NEWCHAIN, array[nft_chain_policy]] {
    //                      len: len = 0x48 (4 bytes)
    //                      type: const = 0x3 (1 bytes)
    //                      subsys: const = 0xa (1 bytes)
    //                      flags: netlink_netfilter_msg_flags = 0x401 (2 bytes)
    //                      seq: const = 0x0 (4 bytes)
    //                      pid: const = 0x0 (4 bytes)
    //                      hdr: nfgenmsg {
    //                        nfgen_family: nfproto = 0x5 (1 bytes)
    //                        version: const = 0x0 (1 bytes)
    //                        res_id: int16be = 0x0 (2 bytes)
    //                      }
    //                      attrs: array[nft_chain_policy] {
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_TABLE:
    //                          nlattr_t[const[NFTA_CHAIN_TABLE, int16],
    //                          string[nft_table_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x1 (2 bytes)
    //                            payload: buffer: {73 79 7a 61 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_NAME: nlattr_t[const[NFTA_CHAIN_NAME,
    //                          int16], string[nft_chain_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x3 (2 bytes)
    //                            payload: buffer: {73 79 7a 62 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_COUNTERS:
    //                          nlattr_tt[const[NFTA_CHAIN_COUNTERS, int16:14],
    //                          0, 1, array[nft_counter_policy]] {
    //                            nla_len: offsetof = 0x1c (2 bytes)
    //                            nla_type: const = 0x8 (1 bytes)
    //                            NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                            NLA_F_NESTED: const = 0x1 (1 bytes)
    //                            payload: array[nft_counter_policy] {
    //                              union nft_counter_policy {
    //                                NFTA_COUNTER_PACKETS:
    //                                nlattr_tt[const[NFTA_COUNTER_PACKETS,
    //                                int16:14], 1, 0, int64be] {
    //                                  nla_len: offsetof = 0xc (2 bytes)
    //                                  nla_type: const = 0x2 (1 bytes)
    //                                  NLA_F_NET_BYTEORDER: const = 0x1 (0
    //                                  bytes) NLA_F_NESTED: const = 0x0 (1
    //                                  bytes) payload: int64be =
    //                                  0xffffffffffffffff (8 bytes) size:
    //                                  buffer: {} (length 0x0)
    //                                }
    //                              }
    //                              union nft_counter_policy {
    //                                NFTA_COUNTER_BYTES:
    //                                nlattr_tt[const[NFTA_COUNTER_BYTES,
    //                                int16:14], 1, 0, int64be] {
    //                                  nla_len: offsetof = 0xc (2 bytes)
    //                                  nla_type: const = 0x1 (1 bytes)
    //                                  NLA_F_NET_BYTEORDER: const = 0x1 (0
    //                                  bytes) NLA_F_NESTED: const = 0x0 (1
    //                                  bytes) payload: int64be = 0x0 (8 bytes)
    //                                  size: buffer: {} (length 0x0)
    //                                }
    //                              }
    //                            }
    //                            size: buffer: {} (length 0x0)
    //                          }
    //                        }
    //                      }
    //                    }
    //                  }
    //                  union nft_batch_message {
    //                    NFT_MSG_NEWRULE:
    //                    netlink_msg_netfilter_tt[NFNL_SUBSYS_NFTABLES,
    //                    NFT_MSG_NEWRULE, array[nft_rule_policy]] {
    //                      len: len = 0xc8 (4 bytes)
    //                      type: const = 0x6 (1 bytes)
    //                      subsys: const = 0xa (1 bytes)
    //                      flags: netlink_netfilter_msg_flags = 0x401 (2 bytes)
    //                      seq: const = 0x0 (4 bytes)
    //                      pid: const = 0x0 (4 bytes)
    //                      hdr: nfgenmsg {
    //                        nfgen_family: nfproto = 0x5 (1 bytes)
    //                        version: const = 0x0 (1 bytes)
    //                        res_id: int16be = 0x0 (2 bytes)
    //                      }
    //                      attrs: array[nft_rule_policy] {
    //                        union nft_rule_policy {
    //                          NFTA_RULE_TABLE: nlattr_t[const[NFTA_RULE_TABLE,
    //                          int16], string[nft_table_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x1 (2 bytes)
    //                            payload: buffer: {73 79 7a 61 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_rule_policy {
    //                          NFTA_RULE_CHAIN: nlattr_t[const[NFTA_RULE_CHAIN,
    //                          int16], string[nft_chain_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x2 (2 bytes)
    //                            payload: buffer: {73 79 7a 65 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_rule_policy {
    //                          NFTA_RULE_EXPRESSIONS:
    //                          nlattr_tt[const[NFTA_RULE_EXPRESSIONS,
    //                          int16:14], 0, 1, array[nlnest[NFTA_LIST_ELEM,
    //                          nft_expr_policy]]] {
    //                            nla_len: offsetof = 0x9c (2 bytes)
    //                            nla_type: const = 0x4 (1 bytes)
    //                            NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                            NLA_F_NESTED: const = 0x1 (1 bytes)
    //                            payload: array[nlattr_tt[const[NFTA_LIST_ELEM,
    //                            int16:14], 0, 1, nft_expr_policy]] {
    //                              nlattr_tt[const[NFTA_LIST_ELEM, int16:14],
    //                              0, 1, nft_expr_policy] {
    //                                nla_len: offsetof = 0x68 (2 bytes)
    //                                nla_type: const = 0x1 (1 bytes)
    //                                NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                                NLA_F_NESTED: const = 0x1 (1 bytes)
    //                                payload: union nft_expr_policy {
    //                                  inner: nft_expr_policy_t["inner",
    //                                  nft_inner_policy] {
    //                                    NFTA_EXPR_NAME:
    //                                    nlattr_t[const[NFTA_EXPR_NAME, int16],
    //                                    string["inner"]] {
    //                                      nla_len: offsetof = 0xa (2 bytes)
    //                                      nla_type: const = 0x1 (2 bytes)
    //                                      payload: buffer: {69 6e 6e 65 72 00}
    //                                      (length 0x6) size: buffer: {}
    //                                      (length 0x0) pad = 0x0 (2 bytes)
    //                                    }
    //                                    NFTA_EXPR_DATA: union
    //                                    optional[nlnest[NFTA_EXPR_DATA,
    //                                    array[nft_inner_policy]]] {
    //                                      val: nlattr_tt[const[NFTA_EXPR_DATA,
    //                                      int16:14], 0, 1,
    //                                      array[nft_inner_policy]] {
    //                                        nla_len: offsetof = 0x58 (2 bytes)
    //                                        nla_type: const = 0x2 (1 bytes)
    //                                        NLA_F_NET_BYTEORDER: const = 0x0
    //                                        (0 bytes) NLA_F_NESTED: const =
    //                                        0x1 (1 bytes) payload:
    //                                        array[nft_inner_policy] {
    //                                          union nft_inner_policy {
    //                                            NFTA_INNER_NUM:
    //                                            nlattr_tt[const[NFTA_INNER_NUM,
    //                                            int16:14], 1, 0, int32be[0]] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x1
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: int32be = 0x0 (4
    //                                              bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_inner_policy {
    //                                            NFTA_INNER_TYPE:
    //                                            nlattr_tt[const[NFTA_INNER_TYPE,
    //                                            int16:14], 1, 0,
    //                                            int32be[0:255]] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x2
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: int32be = 0x2 (4
    //                                              bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_inner_policy {
    //                                            NFTA_INNER_FLAGS:
    //                                            nlattr_tt[const[NFTA_INNER_FLAGS,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_inner_flags,
    //                                            int32be]] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x3
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_inner_flags =
    //                                              0x9 (4 bytes) size: buffer:
    //                                              {} (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_inner_policy {
    //                                            NFTA_INNER_HDRSIZE:
    //                                            nlattr_tt[const[NFTA_INNER_HDRSIZE,
    //                                            int16:14], 1, 0,
    //                                            int32be[0:64]] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x4
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: int32be = 0x1f (4
    //                                              bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_inner_policy {
    //                                            NFTA_INNER_EXPR:
    //                                            nlattr_tt[const[NFTA_INNER_EXPR,
    //                                            int16:14], 0, 1,
    //                                            nft_expr_policy_inner] {
    //                                              nla_len: offsetof = 0x34 (2
    //                                              bytes) nla_type: const = 0x5
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x0 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x1 (1 bytes)
    //                                              payload: union
    //                                              nft_expr_policy_inner {
    //                                                payload:
    //                                                nft_expr_policy_t["payload",
    //                                                nft_payload_policy] {
    //                                                  NFTA_EXPR_NAME:
    //                                                  nlattr_t[const[NFTA_EXPR_NAME,
    //                                                  int16],
    //                                                  string["payload"]] {
    //                                                    nla_len: offsetof =
    //                                                    0xc (2 bytes)
    //                                                    nla_type: const = 0x1
    //                                                    (2 bytes) payload:
    //                                                    buffer: {70 61 79 6c
    //                                                    6f 61 64 00} (length
    //                                                    0x8) size: buffer: {}
    //                                                    (length 0x0)
    //                                                  }
    //                                                  NFTA_EXPR_DATA: union
    //                                                  optional[nlnest[NFTA_EXPR_DATA,
    //                                                  array[nft_payload_policy]]]
    //                                                  {
    //                                                    val:
    //                                                    nlattr_tt[const[NFTA_EXPR_DATA,
    //                                                    int16:14], 0, 1,
    //                                                    array[nft_payload_policy]]
    //                                                    {
    //                                                      nla_len: offsetof =
    //                                                      0x24 (2 bytes)
    //                                                      nla_type: const =
    //                                                      0x2 (1 bytes)
    //                                                      NLA_F_NET_BYTEORDER:
    //                                                      const = 0x0 (0
    //                                                      bytes) NLA_F_NESTED:
    //                                                      const = 0x1 (1
    //                                                      bytes) payload:
    //                                                      array[nft_payload_policy]
    //                                                      {
    //                                                        union
    //                                                        nft_payload_policy
    //                                                        {
    //                                                          NFTA_PAYLOAD_BASE:
    //                                                          nlattr_tt[const[NFTA_PAYLOAD_BASE,
    //                                                          int16:14], 1, 0,
    //                                                          flags[nft_payload_bases,
    //                                                          int32be]] {
    //                                                            nla_len:
    //                                                            offsetof = 0x8
    //                                                            (2 bytes)
    //                                                            nla_type:
    //                                                            const = 0x2 (1
    //                                                            bytes)
    //                                                            NLA_F_NET_BYTEORDER:
    //                                                            const = 0x1 (0
    //                                                            bytes)
    //                                                            NLA_F_NESTED:
    //                                                            const = 0x0 (1
    //                                                            bytes)
    //                                                            payload:
    //                                                            nft_payload_bases
    //                                                            = 0x2 (4
    //                                                            bytes) size:
    //                                                            buffer: {}
    //                                                            (length 0x0)
    //                                                          }
    //                                                        }
    //                                                        union
    //                                                        nft_payload_policy
    //                                                        {
    //                                                          NFTA_PAYLOAD_OFFSET:
    //                                                          nlattr_tt[const[NFTA_PAYLOAD_OFFSET,
    //                                                          int16:14], 1, 0,
    //                                                          int32be[0:255]]
    //                                                          {
    //                                                            nla_len:
    //                                                            offsetof = 0x8
    //                                                            (2 bytes)
    //                                                            nla_type:
    //                                                            const = 0x3 (1
    //                                                            bytes)
    //                                                            NLA_F_NET_BYTEORDER:
    //                                                            const = 0x1 (0
    //                                                            bytes)
    //                                                            NLA_F_NESTED:
    //                                                            const = 0x0 (1
    //                                                            bytes)
    //                                                            payload:
    //                                                            int32be = 0x4
    //                                                            (4 bytes)
    //                                                            size: buffer:
    //                                                            {} (length
    //                                                            0x0)
    //                                                          }
    //                                                        }
    //                                                        union
    //                                                        nft_payload_policy
    //                                                        {
    //                                                          NFTA_PAYLOAD_LEN:
    //                                                          nlattr_tt[const[NFTA_PAYLOAD_LEN,
    //                                                          int16:14], 1, 0,
    //                                                          int32be[0:255]]
    //                                                          {
    //                                                            nla_len:
    //                                                            offsetof = 0x8
    //                                                            (2 bytes)
    //                                                            nla_type:
    //                                                            const = 0x4 (1
    //                                                            bytes)
    //                                                            NLA_F_NET_BYTEORDER:
    //                                                            const = 0x1 (0
    //                                                            bytes)
    //                                                            NLA_F_NESTED:
    //                                                            const = 0x0 (1
    //                                                            bytes)
    //                                                            payload:
    //                                                            int32be = 0x1
    //                                                            (4 bytes)
    //                                                            size: buffer:
    //                                                            {} (length
    //                                                            0x0)
    //                                                          }
    //                                                        }
    //                                                        union
    //                                                        nft_payload_policy
    //                                                        {
    //                                                          NFTA_PAYLOAD_DREG:
    //                                                          nlattr_tt[const[NFTA_PAYLOAD_DREG,
    //                                                          int16:14], 1, 0,
    //                                                          flags[nft_registers,
    //                                                          int32be]] {
    //                                                            nla_len:
    //                                                            offsetof = 0x8
    //                                                            (2 bytes)
    //                                                            nla_type:
    //                                                            const = 0x1 (1
    //                                                            bytes)
    //                                                            NLA_F_NET_BYTEORDER:
    //                                                            const = 0x1 (0
    //                                                            bytes)
    //                                                            NLA_F_NESTED:
    //                                                            const = 0x0 (1
    //                                                            bytes)
    //                                                            payload:
    //                                                            nft_registers
    //                                                            = 0x1 (4
    //                                                            bytes) size:
    //                                                            buffer: {}
    //                                                            (length 0x0)
    //                                                          }
    //                                                        }
    //                                                      }
    //                                                      size: buffer: {}
    //                                                      (length 0x0)
    //                                                    }
    //                                                  }
    //                                                }
    //                                              }
    //                                              size: buffer: {} (length
    //                                              0x0)
    //                                            }
    //                                          }
    //                                        }
    //                                        size: buffer: {} (length 0x0)
    //                                      }
    //                                    }
    //                                  }
    //                                }
    //                                size: buffer: {} (length 0x0)
    //                              }
    //                              nlattr_tt[const[NFTA_LIST_ELEM, int16:14],
    //                              0, 1, nft_expr_policy] {
    //                                nla_len: offsetof = 0x30 (2 bytes)
    //                                nla_type: const = 0x1 (1 bytes)
    //                                NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                                NLA_F_NESTED: const = 0x1 (1 bytes)
    //                                payload: union nft_expr_policy {
    //                                  immediate:
    //                                  nft_expr_policy_t["immediate",
    //                                  nft_immediate_policy] {
    //                                    NFTA_EXPR_NAME:
    //                                    nlattr_t[const[NFTA_EXPR_NAME, int16],
    //                                    string["immediate"]] {
    //                                      nla_len: offsetof = 0xe (2 bytes)
    //                                      nla_type: const = 0x1 (2 bytes)
    //                                      payload: buffer: {69 6d 6d 65 64 69
    //                                      61 74 65 00} (length 0xa) size:
    //                                      buffer: {} (length 0x0) pad = 0x0 (2
    //                                      bytes)
    //                                    }
    //                                    NFTA_EXPR_DATA: union
    //                                    optional[nlnest[NFTA_EXPR_DATA,
    //                                    array[nft_immediate_policy]]] {
    //                                      val: nlattr_tt[const[NFTA_EXPR_DATA,
    //                                      int16:14], 0, 1,
    //                                      array[nft_immediate_policy]] {
    //                                        nla_len: offsetof = 0x1c (2 bytes)
    //                                        nla_type: const = 0x2 (1 bytes)
    //                                        NLA_F_NET_BYTEORDER: const = 0x0
    //                                        (0 bytes) NLA_F_NESTED: const =
    //                                        0x1 (1 bytes) payload:
    //                                        array[nft_immediate_policy] {
    //                                          union nft_immediate_policy {
    //                                            NFTA_IMMEDIATE_DREG:
    //                                            nlattr_tt[const[NFTA_IMMEDIATE_DREG,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_registers, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x1
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_registers = 0x0
    //                                              (4 bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_immediate_policy {
    //                                            NFTA_IMMEDIATE_DATA:
    //                                            nlattr_tt[const[NFTA_IMMEDIATE_DATA,
    //                                            int16:14], 0, 1,
    //                                            array[nft_data_policy]] {
    //                                              nla_len: offsetof = 0x10 (2
    //                                              bytes) nla_type: const = 0x2
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x0 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x1 (1 bytes)
    //                                              payload:
    //                                              array[nft_data_policy] {
    //                                                union nft_data_policy {
    //                                                  NFTA_DATA_VERDICT:
    //                                                  nlattr_tt[const[NFTA_DATA_VERDICT,
    //                                                  int16:14], 0, 1,
    //                                                  array[nft_verdict_policy]]
    //                                                  {
    //                                                    nla_len: offsetof =
    //                                                    0xc (2 bytes)
    //                                                    nla_type: const = 0x2
    //                                                    (1 bytes)
    //                                                    NLA_F_NET_BYTEORDER:
    //                                                    const = 0x0 (0 bytes)
    //                                                    NLA_F_NESTED: const =
    //                                                    0x1 (1 bytes) payload:
    //                                                    array[nft_verdict_policy]
    //                                                    {
    //                                                      union
    //                                                      nft_verdict_policy {
    //                                                        NFTA_VERDICT_CODE:
    //                                                        nlattr_tt[const[NFTA_VERDICT_CODE,
    //                                                        int16:14], 0, 1,
    //                                                        flags[nft_verdicts,
    //                                                        int32be]] {
    //                                                          nla_len:
    //                                                          offsetof = 0x8
    //                                                          (2 bytes)
    //                                                          nla_type: const
    //                                                          = 0x1 (1 bytes)
    //                                                          NLA_F_NET_BYTEORDER:
    //                                                          const = 0x0 (0
    //                                                          bytes)
    //                                                          NLA_F_NESTED:
    //                                                          const = 0x1 (1
    //                                                          bytes) payload:
    //                                                          nft_verdicts =
    //                                                          0xfffffffffffffffb
    //                                                          (4 bytes) size:
    //                                                          buffer: {}
    //                                                          (length 0x0)
    //                                                        }
    //                                                      }
    //                                                    }
    //                                                    size: buffer: {}
    //                                                    (length 0x0)
    //                                                  }
    //                                                }
    //                                              }
    //                                              size: buffer: {} (length
    //                                              0x0)
    //                                            }
    //                                          }
    //                                        }
    //                                        size: buffer: {} (length 0x0)
    //                                      }
    //                                    }
    //                                  }
    //                                }
    //                                size: buffer: {} (length 0x0)
    //                              }
    //                            }
    //                            size: buffer: {} (length 0x0)
    //                          }
    //                        }
    //                      }
    //                    }
    //                  }
    //                  union nft_batch_message {
    //                    NFT_MSG_NEWCHAIN:
    //                    netlink_msg_netfilter_tt[NFNL_SUBSYS_NFTABLES,
    //                    NFT_MSG_NEWCHAIN, array[nft_chain_policy]] {
    //                      len: len = 0x30 (4 bytes)
    //                      type: const = 0x3 (1 bytes)
    //                      subsys: const = 0xa (1 bytes)
    //                      flags: netlink_netfilter_msg_flags = 0x401 (2 bytes)
    //                      seq: const = 0x0 (4 bytes)
    //                      pid: const = 0x0 (4 bytes)
    //                      hdr: nfgenmsg {
    //                        nfgen_family: nfproto = 0x5 (1 bytes)
    //                        version: const = 0x0 (1 bytes)
    //                        res_id: int16be = 0x0 (2 bytes)
    //                      }
    //                      attrs: array[nft_chain_policy] {
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_TABLE:
    //                          nlattr_t[const[NFTA_CHAIN_TABLE, int16],
    //                          string[nft_table_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x1 (2 bytes)
    //                            payload: buffer: {73 79 7a 61 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_ID: nlattr_tt[const[NFTA_CHAIN_ID,
    //                          int16:14], 1, 0, nft_chain_id] {
    //                            nla_len: offsetof = 0x8 (2 bytes)
    //                            nla_type: const = 0xb (1 bytes)
    //                            NLA_F_NET_BYTEORDER: const = 0x1 (0 bytes)
    //                            NLA_F_NESTED: const = 0x0 (1 bytes)
    //                            payload: int32be = 0x1 (4 bytes)
    //                            size: buffer: {} (length 0x0)
    //                          }
    //                        }
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_FLAGS:
    //                          nlattr_tt[const[NFTA_CHAIN_FLAGS, int16:14], 1,
    //                          0, flags[nft_chain_flags, int32be]] {
    //                            nla_len: offsetof = 0x8 (2 bytes)
    //                            nla_type: const = 0xa (1 bytes)
    //                            NLA_F_NET_BYTEORDER: const = 0x1 (0 bytes)
    //                            NLA_F_NESTED: const = 0x0 (1 bytes)
    //                            payload: nft_chain_flags = 0x4 (4 bytes)
    //                            size: buffer: {} (length 0x0)
    //                          }
    //                        }
    //                      }
    //                    }
    //                  }
    //                  union nft_batch_message {
    //                    NFT_MSG_NEWRULE:
    //                    netlink_msg_netfilter_tt[NFNL_SUBSYS_NFTABLES,
    //                    NFT_MSG_NEWRULE, array[nft_rule_policy]] {
    //                      len: len = 0x68 (4 bytes)
    //                      type: const = 0x6 (1 bytes)
    //                      subsys: const = 0xa (1 bytes)
    //                      flags: netlink_netfilter_msg_flags = 0x401 (2 bytes)
    //                      seq: const = 0x0 (4 bytes)
    //                      pid: const = 0x0 (4 bytes)
    //                      hdr: nfgenmsg {
    //                        nfgen_family: nfproto = 0x5 (1 bytes)
    //                        version: const = 0x0 (1 bytes)
    //                        res_id: int16be = 0x0 (2 bytes)
    //                      }
    //                      attrs: array[nft_rule_policy] {
    //                        union nft_rule_policy {
    //                          NFTA_RULE_TABLE: nlattr_t[const[NFTA_RULE_TABLE,
    //                          int16], string[nft_table_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x1 (2 bytes)
    //                            payload: buffer: {73 79 7a 61 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_rule_policy {
    //                          NFTA_RULE_CHAIN: nlattr_t[const[NFTA_RULE_CHAIN,
    //                          int16], string[nft_chain_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x2 (2 bytes)
    //                            payload: buffer: {73 79 7a 65 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_rule_policy {
    //                          NFTA_RULE_EXPRESSIONS:
    //                          nlattr_tt[const[NFTA_RULE_EXPRESSIONS,
    //                          int16:14], 0, 1, array[nlnest[NFTA_LIST_ELEM,
    //                          nft_expr_policy]]] {
    //                            nla_len: offsetof = 0x3c (2 bytes)
    //                            nla_type: const = 0x4 (1 bytes)
    //                            NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                            NLA_F_NESTED: const = 0x1 (1 bytes)
    //                            payload: array[nlattr_tt[const[NFTA_LIST_ELEM,
    //                            int16:14], 0, 1, nft_expr_policy]] {
    //                              nlattr_tt[const[NFTA_LIST_ELEM, int16:14],
    //                              0, 1, nft_expr_policy] {
    //                                nla_len: offsetof = 0x38 (2 bytes)
    //                                nla_type: const = 0x1 (1 bytes)
    //                                NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                                NLA_F_NESTED: const = 0x1 (1 bytes)
    //                                payload: union nft_expr_policy {
    //                                  immediate:
    //                                  nft_expr_policy_t["immediate",
    //                                  nft_immediate_policy] {
    //                                    NFTA_EXPR_NAME:
    //                                    nlattr_t[const[NFTA_EXPR_NAME, int16],
    //                                    string["immediate"]] {
    //                                      nla_len: offsetof = 0xe (2 bytes)
    //                                      nla_type: const = 0x1 (2 bytes)
    //                                      payload: buffer: {69 6d 6d 65 64 69
    //                                      61 74 65 00} (length 0xa) size:
    //                                      buffer: {} (length 0x0) pad = 0x0 (2
    //                                      bytes)
    //                                    }
    //                                    NFTA_EXPR_DATA: union
    //                                    optional[nlnest[NFTA_EXPR_DATA,
    //                                    array[nft_immediate_policy]]] {
    //                                      val: nlattr_tt[const[NFTA_EXPR_DATA,
    //                                      int16:14], 0, 1,
    //                                      array[nft_immediate_policy]] {
    //                                        nla_len: offsetof = 0x24 (2 bytes)
    //                                        nla_type: const = 0x2 (1 bytes)
    //                                        NLA_F_NET_BYTEORDER: const = 0x0
    //                                        (0 bytes) NLA_F_NESTED: const =
    //                                        0x1 (1 bytes) payload:
    //                                        array[nft_immediate_policy] {
    //                                          union nft_immediate_policy {
    //                                            NFTA_IMMEDIATE_DREG:
    //                                            nlattr_tt[const[NFTA_IMMEDIATE_DREG,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_registers, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x1
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_registers = 0x0
    //                                              (4 bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_immediate_policy {
    //                                            NFTA_IMMEDIATE_DATA:
    //                                            nlattr_tt[const[NFTA_IMMEDIATE_DATA,
    //                                            int16:14], 0, 1,
    //                                            array[nft_data_policy]] {
    //                                              nla_len: offsetof = 0x18 (2
    //                                              bytes) nla_type: const = 0x2
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x0 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x1 (1 bytes)
    //                                              payload:
    //                                              array[nft_data_policy] {
    //                                                union nft_data_policy {
    //                                                  NFTA_DATA_VERDICT:
    //                                                  nlattr_tt[const[NFTA_DATA_VERDICT,
    //                                                  int16:14], 0, 1,
    //                                                  array[nft_verdict_policy]]
    //                                                  {
    //                                                    nla_len: offsetof =
    //                                                    0x14 (2 bytes)
    //                                                    nla_type: const = 0x2
    //                                                    (1 bytes)
    //                                                    NLA_F_NET_BYTEORDER:
    //                                                    const = 0x0 (0 bytes)
    //                                                    NLA_F_NESTED: const =
    //                                                    0x1 (1 bytes) payload:
    //                                                    array[nft_verdict_policy]
    //                                                    {
    //                                                      union
    //                                                      nft_verdict_policy {
    //                                                        NFTA_VERDICT_CODE:
    //                                                        nlattr_tt[const[NFTA_VERDICT_CODE,
    //                                                        int16:14], 0, 1,
    //                                                        flags[nft_verdicts,
    //                                                        int32be]] {
    //                                                          nla_len:
    //                                                          offsetof = 0x8
    //                                                          (2 bytes)
    //                                                          nla_type: const
    //                                                          = 0x1 (1 bytes)
    //                                                          NLA_F_NET_BYTEORDER:
    //                                                          const = 0x0 (0
    //                                                          bytes)
    //                                                          NLA_F_NESTED:
    //                                                          const = 0x1 (1
    //                                                          bytes) payload:
    //                                                          nft_verdicts =
    //                                                          0xfffffffffffffffd
    //                                                          (4 bytes) size:
    //                                                          buffer: {}
    //                                                          (length 0x0)
    //                                                        }
    //                                                      }
    //                                                      union
    //                                                      nft_verdict_policy {
    //                                                        NFTA_VERDICT_CHAIN_ID:
    //                                                        nlattr_tt[const[NFTA_VERDICT_CHAIN_ID,
    //                                                        int16:14], 1, 0,
    //                                                        nft_chain_id] {
    //                                                          nla_len:
    //                                                          offsetof = 0x8
    //                                                          (2 bytes)
    //                                                          nla_type: const
    //                                                          = 0x3 (1 bytes)
    //                                                          NLA_F_NET_BYTEORDER:
    //                                                          const = 0x1 (0
    //                                                          bytes)
    //                                                          NLA_F_NESTED:
    //                                                          const = 0x0 (1
    //                                                          bytes) payload:
    //                                                          int32be = 0x1 (4
    //                                                          bytes) size:
    //                                                          buffer: {}
    //                                                          (length 0x0)
    //                                                        }
    //                                                      }
    //                                                    }
    //                                                    size: buffer: {}
    //                                                    (length 0x0)
    //                                                  }
    //                                                }
    //                                              }
    //                                              size: buffer: {} (length
    //                                              0x0)
    //                                            }
    //                                          }
    //                                        }
    //                                        size: buffer: {} (length 0x0)
    //                                      }
    //                                    }
    //                                  }
    //                                }
    //                                size: buffer: {} (length 0x0)
    //                              }
    //                            }
    //                            size: buffer: {} (length 0x0)
    //                          }
    //                        }
    //                      }
    //                    }
    //                  }
    //                  union nft_batch_message {
    //                    NFT_MSG_NEWCHAIN:
    //                    netlink_msg_netfilter_tt[NFNL_SUBSYS_NFTABLES,
    //                    NFT_MSG_NEWCHAIN, array[nft_chain_policy]] {
    //                      len: len = 0x30 (4 bytes)
    //                      type: const = 0x3 (1 bytes)
    //                      subsys: const = 0xa (1 bytes)
    //                      flags: netlink_netfilter_msg_flags = 0x401 (2 bytes)
    //                      seq: const = 0x0 (4 bytes)
    //                      pid: const = 0x0 (4 bytes)
    //                      hdr: nfgenmsg {
    //                        nfgen_family: nfproto = 0x5 (1 bytes)
    //                        version: const = 0x0 (1 bytes)
    //                        res_id: int16be = 0x0 (2 bytes)
    //                      }
    //                      attrs: array[nft_chain_policy] {
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_TABLE:
    //                          nlattr_t[const[NFTA_CHAIN_TABLE, int16],
    //                          string[nft_table_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x1 (2 bytes)
    //                            payload: buffer: {73 79 7a 61 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_ID: nlattr_tt[const[NFTA_CHAIN_ID,
    //                          int16:14], 1, 0, nft_chain_id] {
    //                            nla_len: offsetof = 0x8 (2 bytes)
    //                            nla_type: const = 0xb (1 bytes)
    //                            NLA_F_NET_BYTEORDER: const = 0x1 (0 bytes)
    //                            NLA_F_NESTED: const = 0x0 (1 bytes)
    //                            payload: int32be = 0x2 (4 bytes)
    //                            size: buffer: {} (length 0x0)
    //                          }
    //                        }
    //                        union nft_chain_policy {
    //                          NFTA_CHAIN_FLAGS:
    //                          nlattr_tt[const[NFTA_CHAIN_FLAGS, int16:14], 1,
    //                          0, flags[nft_chain_flags, int32be]] {
    //                            nla_len: offsetof = 0x8 (2 bytes)
    //                            nla_type: const = 0xa (1 bytes)
    //                            NLA_F_NET_BYTEORDER: const = 0x1 (0 bytes)
    //                            NLA_F_NESTED: const = 0x0 (1 bytes)
    //                            payload: nft_chain_flags = 0x4 (4 bytes)
    //                            size: buffer: {} (length 0x0)
    //                          }
    //                        }
    //                      }
    //                    }
    //                  }
    //                  union nft_batch_message {
    //                    NFT_MSG_NEWRULE:
    //                    netlink_msg_netfilter_tt[NFNL_SUBSYS_NFTABLES,
    //                    NFT_MSG_NEWRULE, array[nft_rule_policy]] {
    //                      len: len = 0x68 (4 bytes)
    //                      type: const = 0x6 (1 bytes)
    //                      subsys: const = 0xa (1 bytes)
    //                      flags: netlink_netfilter_msg_flags = 0x401 (2 bytes)
    //                      seq: const = 0x0 (4 bytes)
    //                      pid: const = 0x0 (4 bytes)
    //                      hdr: nfgenmsg {
    //                        nfgen_family: nfproto = 0x5 (1 bytes)
    //                        version: const = 0x0 (1 bytes)
    //                        res_id: int16be = 0x0 (2 bytes)
    //                      }
    //                      attrs: array[nft_rule_policy] {
    //                        union nft_rule_policy {
    //                          NFTA_RULE_TABLE: nlattr_t[const[NFTA_RULE_TABLE,
    //                          int16], string[nft_table_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x1 (2 bytes)
    //                            payload: buffer: {73 79 7a 61 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_rule_policy {
    //                          NFTA_RULE_CHAIN: nlattr_t[const[NFTA_RULE_CHAIN,
    //                          int16], string[nft_chain_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x2 (2 bytes)
    //                            payload: buffer: {73 79 7a 62 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_rule_policy {
    //                          NFTA_RULE_EXPRESSIONS:
    //                          nlattr_tt[const[NFTA_RULE_EXPRESSIONS,
    //                          int16:14], 0, 1, array[nlnest[NFTA_LIST_ELEM,
    //                          nft_expr_policy]]] {
    //                            nla_len: offsetof = 0x3c (2 bytes)
    //                            nla_type: const = 0x4 (1 bytes)
    //                            NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                            NLA_F_NESTED: const = 0x1 (1 bytes)
    //                            payload: array[nlattr_tt[const[NFTA_LIST_ELEM,
    //                            int16:14], 0, 1, nft_expr_policy]] {
    //                              nlattr_tt[const[NFTA_LIST_ELEM, int16:14],
    //                              0, 1, nft_expr_policy] {
    //                                nla_len: offsetof = 0x38 (2 bytes)
    //                                nla_type: const = 0x1 (1 bytes)
    //                                NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                                NLA_F_NESTED: const = 0x1 (1 bytes)
    //                                payload: union nft_expr_policy {
    //                                  immediate:
    //                                  nft_expr_policy_t["immediate",
    //                                  nft_immediate_policy] {
    //                                    NFTA_EXPR_NAME:
    //                                    nlattr_t[const[NFTA_EXPR_NAME, int16],
    //                                    string["immediate"]] {
    //                                      nla_len: offsetof = 0xe (2 bytes)
    //                                      nla_type: const = 0x1 (2 bytes)
    //                                      payload: buffer: {69 6d 6d 65 64 69
    //                                      61 74 65 00} (length 0xa) size:
    //                                      buffer: {} (length 0x0) pad = 0x0 (2
    //                                      bytes)
    //                                    }
    //                                    NFTA_EXPR_DATA: union
    //                                    optional[nlnest[NFTA_EXPR_DATA,
    //                                    array[nft_immediate_policy]]] {
    //                                      val: nlattr_tt[const[NFTA_EXPR_DATA,
    //                                      int16:14], 0, 1,
    //                                      array[nft_immediate_policy]] {
    //                                        nla_len: offsetof = 0x24 (2 bytes)
    //                                        nla_type: const = 0x2 (1 bytes)
    //                                        NLA_F_NET_BYTEORDER: const = 0x0
    //                                        (0 bytes) NLA_F_NESTED: const =
    //                                        0x1 (1 bytes) payload:
    //                                        array[nft_immediate_policy] {
    //                                          union nft_immediate_policy {
    //                                            NFTA_IMMEDIATE_DREG:
    //                                            nlattr_tt[const[NFTA_IMMEDIATE_DREG,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_registers, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x1
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_registers = 0x0
    //                                              (4 bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_immediate_policy {
    //                                            NFTA_IMMEDIATE_DATA:
    //                                            nlattr_tt[const[NFTA_IMMEDIATE_DATA,
    //                                            int16:14], 0, 1,
    //                                            array[nft_data_policy]] {
    //                                              nla_len: offsetof = 0x18 (2
    //                                              bytes) nla_type: const = 0x2
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x0 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x1 (1 bytes)
    //                                              payload:
    //                                              array[nft_data_policy] {
    //                                                union nft_data_policy {
    //                                                  NFTA_DATA_VERDICT:
    //                                                  nlattr_tt[const[NFTA_DATA_VERDICT,
    //                                                  int16:14], 0, 1,
    //                                                  array[nft_verdict_policy]]
    //                                                  {
    //                                                    nla_len: offsetof =
    //                                                    0x14 (2 bytes)
    //                                                    nla_type: const = 0x2
    //                                                    (1 bytes)
    //                                                    NLA_F_NET_BYTEORDER:
    //                                                    const = 0x0 (0 bytes)
    //                                                    NLA_F_NESTED: const =
    //                                                    0x1 (1 bytes) payload:
    //                                                    array[nft_verdict_policy]
    //                                                    {
    //                                                      union
    //                                                      nft_verdict_policy {
    //                                                        NFTA_VERDICT_CODE:
    //                                                        nlattr_tt[const[NFTA_VERDICT_CODE,
    //                                                        int16:14], 0, 1,
    //                                                        flags[nft_verdicts,
    //                                                        int32be]] {
    //                                                          nla_len:
    //                                                          offsetof = 0x8
    //                                                          (2 bytes)
    //                                                          nla_type: const
    //                                                          = 0x1 (1 bytes)
    //                                                          NLA_F_NET_BYTEORDER:
    //                                                          const = 0x0 (0
    //                                                          bytes)
    //                                                          NLA_F_NESTED:
    //                                                          const = 0x1 (1
    //                                                          bytes) payload:
    //                                                          nft_verdicts =
    //                                                          0xfffffffffffffffc
    //                                                          (4 bytes) size:
    //                                                          buffer: {}
    //                                                          (length 0x0)
    //                                                        }
    //                                                      }
    //                                                      union
    //                                                      nft_verdict_policy {
    //                                                        NFTA_VERDICT_CHAIN_ID:
    //                                                        nlattr_tt[const[NFTA_VERDICT_CHAIN_ID,
    //                                                        int16:14], 1, 0,
    //                                                        nft_chain_id] {
    //                                                          nla_len:
    //                                                          offsetof = 0x8
    //                                                          (2 bytes)
    //                                                          nla_type: const
    //                                                          = 0x3 (1 bytes)
    //                                                          NLA_F_NET_BYTEORDER:
    //                                                          const = 0x1 (0
    //                                                          bytes)
    //                                                          NLA_F_NESTED:
    //                                                          const = 0x0 (1
    //                                                          bytes) payload:
    //                                                          int32be = 0x2 (4
    //                                                          bytes) size:
    //                                                          buffer: {}
    //                                                          (length 0x0)
    //                                                        }
    //                                                      }
    //                                                    }
    //                                                    size: buffer: {}
    //                                                    (length 0x0)
    //                                                  }
    //                                                }
    //                                              }
    //                                              size: buffer: {} (length
    //                                              0x0)
    //                                            }
    //                                          }
    //                                        }
    //                                        size: buffer: {} (length 0x0)
    //                                      }
    //                                    }
    //                                  }
    //                                }
    //                                size: buffer: {} (length 0x0)
    //                              }
    //                            }
    //                            size: buffer: {} (length 0x0)
    //                          }
    //                        }
    //                      }
    //                    }
    //                  }
    //                  union nft_batch_message {
    //                    NFT_MSG_NEWRULE:
    //                    netlink_msg_netfilter_tt[NFNL_SUBSYS_NFTABLES,
    //                    NFT_MSG_NEWRULE, array[nft_rule_policy]] {
    //                      len: len = 0x100 (4 bytes)
    //                      type: const = 0x6 (1 bytes)
    //                      subsys: const = 0xa (1 bytes)
    //                      flags: netlink_netfilter_msg_flags = 0x401 (2 bytes)
    //                      seq: const = 0x0 (4 bytes)
    //                      pid: const = 0x0 (4 bytes)
    //                      hdr: nfgenmsg {
    //                        nfgen_family: nfproto = 0x5 (1 bytes)
    //                        version: const = 0x0 (1 bytes)
    //                        res_id: int16be = 0x0 (2 bytes)
    //                      }
    //                      attrs: array[nft_rule_policy] {
    //                        union nft_rule_policy {
    //                          NFTA_RULE_TABLE: nlattr_t[const[NFTA_RULE_TABLE,
    //                          int16], string[nft_table_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x1 (2 bytes)
    //                            payload: buffer: {73 79 7a 61 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_rule_policy {
    //                          NFTA_RULE_CHAIN: nlattr_t[const[NFTA_RULE_CHAIN,
    //                          int16], string[nft_chain_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x2 (2 bytes)
    //                            payload: buffer: {73 79 7a 62 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_rule_policy {
    //                          NFTA_RULE_EXPRESSIONS:
    //                          nlattr_tt[const[NFTA_RULE_EXPRESSIONS,
    //                          int16:14], 0, 1, array[nlnest[NFTA_LIST_ELEM,
    //                          nft_expr_policy]]] {
    //                            nla_len: offsetof = 0xd4 (2 bytes)
    //                            nla_type: const = 0x4 (1 bytes)
    //                            NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                            NLA_F_NESTED: const = 0x1 (1 bytes)
    //                            payload: array[nlattr_tt[const[NFTA_LIST_ELEM,
    //                            int16:14], 0, 1, nft_expr_policy]] {
    //                              nlattr_tt[const[NFTA_LIST_ELEM, int16:14],
    //                              0, 1, nft_expr_policy] {
    //                                nla_len: offsetof = 0x58 (2 bytes)
    //                                nla_type: const = 0x1 (1 bytes)
    //                                NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                                NLA_F_NESTED: const = 0x1 (1 bytes)
    //                                payload: union nft_expr_policy {
    //                                  fib: nft_expr_policy_t["fib",
    //                                  nft_fib_policy] {
    //                                    NFTA_EXPR_NAME:
    //                                    nlattr_t[const[NFTA_EXPR_NAME, int16],
    //                                    string["fib"]] {
    //                                      nla_len: offsetof = 0x8 (2 bytes)
    //                                      nla_type: const = 0x1 (2 bytes)
    //                                      payload: buffer: {66 69 62 00}
    //                                      (length 0x4) size: buffer: {}
    //                                      (length 0x0)
    //                                    }
    //                                    NFTA_EXPR_DATA: union
    //                                    optional[nlnest[NFTA_EXPR_DATA,
    //                                    array[nft_fib_policy]]] {
    //                                      val: nlattr_tt[const[NFTA_EXPR_DATA,
    //                                      int16:14], 0, 1,
    //                                      array[nft_fib_policy]] {
    //                                        nla_len: offsetof = 0x4c (2 bytes)
    //                                        nla_type: const = 0x2 (1 bytes)
    //                                        NLA_F_NET_BYTEORDER: const = 0x0
    //                                        (0 bytes) NLA_F_NESTED: const =
    //                                        0x1 (1 bytes) payload:
    //                                        array[nft_fib_policy] {
    //                                          union nft_fib_policy {
    //                                            NFTA_FIB_DREG:
    //                                            nlattr_tt[const[NFTA_FIB_DREG,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_registers, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x1
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_registers = 0x0
    //                                              (4 bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_fib_policy {
    //                                            NFTA_FIB_DREG:
    //                                            nlattr_tt[const[NFTA_FIB_DREG,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_registers, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x1
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_registers =
    //                                              0x14 (4 bytes) size: buffer:
    //                                              {} (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_fib_policy {
    //                                            NFTA_FIB_DREG:
    //                                            nlattr_tt[const[NFTA_FIB_DREG,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_registers, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x1
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_registers =
    //                                              0x11 (4 bytes) size: buffer:
    //                                              {} (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_fib_policy {
    //                                            NFTA_FIB_FLAGS:
    //                                            nlattr_tt[const[NFTA_FIB_FLAGS,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_fib_flags, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x3
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_fib_flags = 0x8
    //                                              (4 bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_fib_policy {
    //                                            NFTA_FIB_RESULT:
    //                                            nlattr_tt[const[NFTA_FIB_RESULT,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_fib_result,
    //                                            int32be]] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x2
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_fib_result =
    //                                              0x1 (4 bytes) size: buffer:
    //                                              {} (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_fib_policy {
    //                                            NFTA_FIB_RESULT:
    //                                            nlattr_tt[const[NFTA_FIB_RESULT,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_fib_result,
    //                                            int32be]] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x2
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_fib_result =
    //                                              0x3 (4 bytes) size: buffer:
    //                                              {} (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_fib_policy {
    //                                            NFTA_FIB_RESULT:
    //                                            nlattr_tt[const[NFTA_FIB_RESULT,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_fib_result,
    //                                            int32be]] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x2
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_fib_result =
    //                                              0x2 (4 bytes) size: buffer:
    //                                              {} (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_fib_policy {
    //                                            NFTA_FIB_FLAGS:
    //                                            nlattr_tt[const[NFTA_FIB_FLAGS,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_fib_flags, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x3
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_fib_flags =
    //                                              0x30 (4 bytes) size: buffer:
    //                                              {} (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_fib_policy {
    //                                            NFTA_FIB_FLAGS:
    //                                            nlattr_tt[const[NFTA_FIB_FLAGS,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_fib_flags, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x3
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_fib_flags = 0x1
    //                                              (4 bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                        }
    //                                        size: buffer: {} (length 0x0)
    //                                      }
    //                                    }
    //                                  }
    //                                }
    //                                size: buffer: {} (length 0x0)
    //                              }
    //                              nlattr_tt[const[NFTA_LIST_ELEM, int16:14],
    //                              0, 1, nft_expr_policy] {
    //                                nla_len: offsetof = 0x2c (2 bytes)
    //                                nla_type: const = 0x1 (1 bytes)
    //                                NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                                NLA_F_NESTED: const = 0x1 (1 bytes)
    //                                payload: union nft_expr_policy {
    //                                  immediate:
    //                                  nft_expr_policy_t["immediate",
    //                                  nft_immediate_policy] {
    //                                    NFTA_EXPR_NAME:
    //                                    nlattr_t[const[NFTA_EXPR_NAME, int16],
    //                                    string["immediate"]] {
    //                                      nla_len: offsetof = 0xe (2 bytes)
    //                                      nla_type: const = 0x1 (2 bytes)
    //                                      payload: buffer: {69 6d 6d 65 64 69
    //                                      61 74 65 00} (length 0xa) size:
    //                                      buffer: {} (length 0x0) pad = 0x0 (2
    //                                      bytes)
    //                                    }
    //                                    NFTA_EXPR_DATA: union
    //                                    optional[nlnest[NFTA_EXPR_DATA,
    //                                    array[nft_immediate_policy]]] {
    //                                      val: nlattr_tt[const[NFTA_EXPR_DATA,
    //                                      int16:14], 0, 1,
    //                                      array[nft_immediate_policy]] {
    //                                        nla_len: offsetof = 0x18 (2 bytes)
    //                                        nla_type: const = 0x2 (1 bytes)
    //                                        NLA_F_NET_BYTEORDER: const = 0x0
    //                                        (0 bytes) NLA_F_NESTED: const =
    //                                        0x1 (1 bytes) payload:
    //                                        array[nft_immediate_policy] {
    //                                          union nft_immediate_policy {
    //                                            NFTA_IMMEDIATE_DREG:
    //                                            nlattr_tt[const[NFTA_IMMEDIATE_DREG,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_registers, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x1
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_registers = 0x1
    //                                              (4 bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_immediate_policy {
    //                                            NFTA_IMMEDIATE_DATA:
    //                                            nlattr_tt[const[NFTA_IMMEDIATE_DATA,
    //                                            int16:14], 0, 1,
    //                                            array[nft_data_policy]] {
    //                                              nla_len: offsetof = 0xc (2
    //                                              bytes) nla_type: const = 0x2
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x0 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x1 (1 bytes)
    //                                              payload:
    //                                              array[nft_data_policy] {
    //                                                union nft_data_policy {
    //                                                  NFTA_DATA_VALUE:
    //                                                  nlattr_t[const[NFTA_DATA_VALUE,
    //                                                  int16], array[int8]] {
    //                                                    nla_len: offsetof =
    //                                                    0x6 (2 bytes)
    //                                                    nla_type: const = 0x1
    //                                                    (2 bytes) payload:
    //                                                    buffer: {21 bb}
    //                                                    (length 0x2) size:
    //                                                    buffer: {} (length
    //                                                    0x0)
    //                                                  }
    //                                                }
    //                                              }
    //                                              size: buffer: {} (length
    //                                              0x0)
    //                                            }
    //                                          }
    //                                        }
    //                                        size: buffer: {} (length 0x0)
    //                                      }
    //                                    }
    //                                  }
    //                                }
    //                                size: buffer: {} (length 0x0)
    //                              }
    //                              nlattr_tt[const[NFTA_LIST_ELEM, int16:14],
    //                              0, 1, nft_expr_policy] {
    //                                nla_len: offsetof = 0x4c (2 bytes)
    //                                nla_type: const = 0x1 (1 bytes)
    //                                NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                                NLA_F_NESTED: const = 0x1 (1 bytes)
    //                                payload: union nft_expr_policy {
    //                                  bitwise: nft_expr_policy_t["bitwise",
    //                                  nft_bitwise_policy] {
    //                                    NFTA_EXPR_NAME:
    //                                    nlattr_t[const[NFTA_EXPR_NAME, int16],
    //                                    string["bitwise"]] {
    //                                      nla_len: offsetof = 0xc (2 bytes)
    //                                      nla_type: const = 0x1 (2 bytes)
    //                                      payload: buffer: {62 69 74 77 69 73
    //                                      65 00} (length 0x8) size: buffer: {}
    //                                      (length 0x0)
    //                                    }
    //                                    NFTA_EXPR_DATA: union
    //                                    optional[nlnest[NFTA_EXPR_DATA,
    //                                    array[nft_bitwise_policy]]] {
    //                                      val: nlattr_tt[const[NFTA_EXPR_DATA,
    //                                      int16:14], 0, 1,
    //                                      array[nft_bitwise_policy]] {
    //                                        nla_len: offsetof = 0x3c (2 bytes)
    //                                        nla_type: const = 0x2 (1 bytes)
    //                                        NLA_F_NET_BYTEORDER: const = 0x0
    //                                        (0 bytes) NLA_F_NESTED: const =
    //                                        0x1 (1 bytes) payload:
    //                                        array[nft_bitwise_policy] {
    //                                          union nft_bitwise_policy {
    //                                            NFTA_BITWISE_SREG:
    //                                            nlattr_tt[const[NFTA_BITWISE_SREG,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_registers, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x1
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_registers = 0x1
    //                                              (4 bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_bitwise_policy {
    //                                            NFTA_BITWISE_DREG:
    //                                            nlattr_tt[const[NFTA_BITWISE_DREG,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_registers, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x2
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_registers = 0x2
    //                                              (4 bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_bitwise_policy {
    //                                            NFTA_BITWISE_LEN:
    //                                            nlattr_tt[const[NFTA_BITWISE_LEN,
    //                                            int16:14], 1, 0, int32be] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x3
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: int32be = 0x2 (4
    //                                              bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_bitwise_policy {
    //                                            NFTA_BITWISE_OP:
    //                                            nlattr_tt[const[NFTA_BITWISE_OP,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_bitwise_ops,
    //                                            int32be]] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x6
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_bitwise_ops =
    //                                              0x0 (4 bytes) size: buffer:
    //                                              {} (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_bitwise_policy {
    //                                            NFTA_BITWISE_MASK:
    //                                            nlattr_tt[const[NFTA_BITWISE_MASK,
    //                                            int16:14], 0, 1,
    //                                            array[nft_data_policy]] {
    //                                              nla_len: offsetof = 0xc (2
    //                                              bytes) nla_type: const = 0x4
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x0 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x1 (1 bytes)
    //                                              payload:
    //                                              array[nft_data_policy] {
    //                                                union nft_data_policy {
    //                                                  NFTA_DATA_VALUE:
    //                                                  nlattr_t[const[NFTA_DATA_VALUE,
    //                                                  int16], array[int8]] {
    //                                                    nla_len: offsetof =
    //                                                    0x6 (2 bytes)
    //                                                    nla_type: const = 0x1
    //                                                    (2 bytes) payload:
    //                                                    buffer: {ae 4a}
    //                                                    (length 0x2) size:
    //                                                    buffer: {} (length
    //                                                    0x0)
    //                                                  }
    //                                                }
    //                                              }
    //                                              size: buffer: {} (length
    //                                              0x0)
    //                                            }
    //                                          }
    //                                          union nft_bitwise_policy {
    //                                            NFTA_BITWISE_XOR:
    //                                            nlattr_tt[const[NFTA_BITWISE_XOR,
    //                                            int16:14], 0, 1,
    //                                            array[nft_data_policy]] {
    //                                              nla_len: offsetof = 0xc (2
    //                                              bytes) nla_type: const = 0x5
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x0 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x1 (1 bytes)
    //                                              payload:
    //                                              array[nft_data_policy] {
    //                                                union nft_data_policy {
    //                                                  NFTA_DATA_VALUE:
    //                                                  nlattr_t[const[NFTA_DATA_VALUE,
    //                                                  int16], array[int8]] {
    //                                                    nla_len: offsetof =
    //                                                    0x6 (2 bytes)
    //                                                    nla_type: const = 0x1
    //                                                    (2 bytes) payload:
    //                                                    buffer: {04 40}
    //                                                    (length 0x2) size:
    //                                                    buffer: {} (length
    //                                                    0x0)
    //                                                  }
    //                                                }
    //                                              }
    //                                              size: buffer: {} (length
    //                                              0x0)
    //                                            }
    //                                          }
    //                                        }
    //                                        size: buffer: {} (length 0x0)
    //                                      }
    //                                    }
    //                                  }
    //                                }
    //                                size: buffer: {} (length 0x0)
    //                              }
    //                            }
    //                            size: buffer: {} (length 0x0)
    //                          }
    //                        }
    //                      }
    //                    }
    //                  }
    //                  union nft_batch_message {
    //                    NFT_MSG_NEWRULE:
    //                    netlink_msg_netfilter_tt[NFNL_SUBSYS_NFTABLES,
    //                    NFT_MSG_NEWRULE, array[nft_rule_policy]] {
    //                      len: len = 0xb8 (4 bytes)
    //                      type: const = 0x6 (1 bytes)
    //                      subsys: const = 0xa (1 bytes)
    //                      flags: netlink_netfilter_msg_flags = 0x401 (2 bytes)
    //                      seq: const = 0x0 (4 bytes)
    //                      pid: const = 0x0 (4 bytes)
    //                      hdr: nfgenmsg {
    //                        nfgen_family: nfproto = 0x5 (1 bytes)
    //                        version: const = 0x0 (1 bytes)
    //                        res_id: int16be = 0x0 (2 bytes)
    //                      }
    //                      attrs: array[nft_rule_policy] {
    //                        union nft_rule_policy {
    //                          NFTA_RULE_TABLE: nlattr_t[const[NFTA_RULE_TABLE,
    //                          int16], string[nft_table_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x1 (2 bytes)
    //                            payload: buffer: {73 79 7a 61 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_rule_policy {
    //                          NFTA_RULE_CHAIN: nlattr_t[const[NFTA_RULE_CHAIN,
    //                          int16], string[nft_chain_name]] {
    //                            nla_len: offsetof = 0x9 (2 bytes)
    //                            nla_type: const = 0x2 (2 bytes)
    //                            payload: buffer: {73 79 7a 62 00} (length 0x5)
    //                            size: buffer: {} (length 0x0)
    //                            pad = 0x0 (3 bytes)
    //                          }
    //                        }
    //                        union nft_rule_policy {
    //                          NFTA_RULE_EXPRESSIONS:
    //                          nlattr_tt[const[NFTA_RULE_EXPRESSIONS,
    //                          int16:14], 0, 1, array[nlnest[NFTA_LIST_ELEM,
    //                          nft_expr_policy]]] {
    //                            nla_len: offsetof = 0x8c (2 bytes)
    //                            nla_type: const = 0x4 (1 bytes)
    //                            NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                            NLA_F_NESTED: const = 0x1 (1 bytes)
    //                            payload: array[nlattr_tt[const[NFTA_LIST_ELEM,
    //                            int16:14], 0, 1, nft_expr_policy]] {
    //                              nlattr_tt[const[NFTA_LIST_ELEM, int16:14],
    //                              0, 1, nft_expr_policy] {
    //                                nla_len: offsetof = 0x58 (2 bytes)
    //                                nla_type: const = 0x1 (1 bytes)
    //                                NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                                NLA_F_NESTED: const = 0x1 (1 bytes)
    //                                payload: union nft_expr_policy {
    //                                  inner: nft_expr_policy_t["inner",
    //                                  nft_inner_policy] {
    //                                    NFTA_EXPR_NAME:
    //                                    nlattr_t[const[NFTA_EXPR_NAME, int16],
    //                                    string["inner"]] {
    //                                      nla_len: offsetof = 0xa (2 bytes)
    //                                      nla_type: const = 0x1 (2 bytes)
    //                                      payload: buffer: {69 6e 6e 65 72 00}
    //                                      (length 0x6) size: buffer: {}
    //                                      (length 0x0) pad = 0x0 (2 bytes)
    //                                    }
    //                                    NFTA_EXPR_DATA: union
    //                                    optional[nlnest[NFTA_EXPR_DATA,
    //                                    array[nft_inner_policy]]] {
    //                                      val: nlattr_tt[const[NFTA_EXPR_DATA,
    //                                      int16:14], 0, 1,
    //                                      array[nft_inner_policy]] {
    //                                        nla_len: offsetof = 0x48 (2 bytes)
    //                                        nla_type: const = 0x2 (1 bytes)
    //                                        NLA_F_NET_BYTEORDER: const = 0x0
    //                                        (0 bytes) NLA_F_NESTED: const =
    //                                        0x1 (1 bytes) payload:
    //                                        array[nft_inner_policy] {
    //                                          union nft_inner_policy {
    //                                            NFTA_INNER_NUM:
    //                                            nlattr_tt[const[NFTA_INNER_NUM,
    //                                            int16:14], 1, 0, int32be[0]] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x1
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: int32be = 0x0 (4
    //                                              bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_inner_policy {
    //                                            NFTA_INNER_TYPE:
    //                                            nlattr_tt[const[NFTA_INNER_TYPE,
    //                                            int16:14], 1, 0,
    //                                            int32be[0:255]] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x2
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: int32be = 0x1 (4
    //                                              bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_inner_policy {
    //                                            NFTA_INNER_FLAGS:
    //                                            nlattr_tt[const[NFTA_INNER_FLAGS,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_inner_flags,
    //                                            int32be]] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x3
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_inner_flags =
    //                                              0x2 (4 bytes) size: buffer:
    //                                              {} (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_inner_policy {
    //                                            NFTA_INNER_HDRSIZE:
    //                                            nlattr_tt[const[NFTA_INNER_HDRSIZE,
    //                                            int16:14], 1, 0,
    //                                            int32be[0:64]] {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x4
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: int32be = 0x0 (4
    //                                              bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_inner_policy {
    //                                            NFTA_INNER_EXPR:
    //                                            nlattr_tt[const[NFTA_INNER_EXPR,
    //                                            int16:14], 0, 1,
    //                                            nft_expr_policy_inner] {
    //                                              nla_len: offsetof = 0x24 (2
    //                                              bytes) nla_type: const = 0x5
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x0 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x1 (1 bytes)
    //                                              payload: union
    //                                              nft_expr_policy_inner {
    //                                                meta:
    //                                                nft_expr_policy_t["meta",
    //                                                nft_meta_policy] {
    //                                                  NFTA_EXPR_NAME:
    //                                                  nlattr_t[const[NFTA_EXPR_NAME,
    //                                                  int16], string["meta"]]
    //                                                  {
    //                                                    nla_len: offsetof =
    //                                                    0x9 (2 bytes)
    //                                                    nla_type: const = 0x1
    //                                                    (2 bytes) payload:
    //                                                    buffer: {6d 65 74 61
    //                                                    00} (length 0x5) size:
    //                                                    buffer: {} (length
    //                                                    0x0) pad = 0x0 (3
    //                                                    bytes)
    //                                                  }
    //                                                  NFTA_EXPR_DATA: union
    //                                                  optional[nlnest[NFTA_EXPR_DATA,
    //                                                  array[nft_meta_policy]]]
    //                                                  {
    //                                                    val:
    //                                                    nlattr_tt[const[NFTA_EXPR_DATA,
    //                                                    int16:14], 0, 1,
    //                                                    array[nft_meta_policy]]
    //                                                    {
    //                                                      nla_len: offsetof =
    //                                                      0x14 (2 bytes)
    //                                                      nla_type: const =
    //                                                      0x2 (1 bytes)
    //                                                      NLA_F_NET_BYTEORDER:
    //                                                      const = 0x0 (0
    //                                                      bytes) NLA_F_NESTED:
    //                                                      const = 0x1 (1
    //                                                      bytes) payload:
    //                                                      array[nft_meta_policy]
    //                                                      {
    //                                                        union
    //                                                        nft_meta_policy {
    //                                                          NFTA_META_KEY:
    //                                                          nlattr_tt[const[NFTA_META_KEY,
    //                                                          int16:14], 1, 0,
    //                                                          int32be[NFT_META_LEN:NFT_META_BRI_BROUTE]]
    //                                                          {
    //                                                            nla_len:
    //                                                            offsetof = 0x8
    //                                                            (2 bytes)
    //                                                            nla_type:
    //                                                            const = 0x2 (1
    //                                                            bytes)
    //                                                            NLA_F_NET_BYTEORDER:
    //                                                            const = 0x1 (0
    //                                                            bytes)
    //                                                            NLA_F_NESTED:
    //                                                            const = 0x0 (1
    //                                                            bytes)
    //                                                            payload:
    //                                                            int32be = 0x1
    //                                                            (4 bytes)
    //                                                            size: buffer:
    //                                                            {} (length
    //                                                            0x0)
    //                                                          }
    //                                                        }
    //                                                        union
    //                                                        nft_meta_policy {
    //                                                          NFTA_META_DREG:
    //                                                          nlattr_tt[const[NFTA_META_DREG,
    //                                                          int16:14], 1, 0,
    //                                                          flags[nft_registers,
    //                                                          int32be]] {
    //                                                            nla_len:
    //                                                            offsetof = 0x8
    //                                                            (2 bytes)
    //                                                            nla_type:
    //                                                            const = 0x1 (1
    //                                                            bytes)
    //                                                            NLA_F_NET_BYTEORDER:
    //                                                            const = 0x1 (0
    //                                                            bytes)
    //                                                            NLA_F_NESTED:
    //                                                            const = 0x0 (1
    //                                                            bytes)
    //                                                            payload:
    //                                                            nft_registers
    //                                                            = 0x1 (4
    //                                                            bytes) size:
    //                                                            buffer: {}
    //                                                            (length 0x0)
    //                                                          }
    //                                                        }
    //                                                      }
    //                                                      size: buffer: {}
    //                                                      (length 0x0)
    //                                                    }
    //                                                  }
    //                                                }
    //                                              }
    //                                              size: buffer: {} (length
    //                                              0x0)
    //                                            }
    //                                          }
    //                                        }
    //                                        size: buffer: {} (length 0x0)
    //                                      }
    //                                    }
    //                                  }
    //                                }
    //                                size: buffer: {} (length 0x0)
    //                              }
    //                              nlattr_tt[const[NFTA_LIST_ELEM, int16:14],
    //                              0, 1, nft_expr_policy] {
    //                                nla_len: offsetof = 0x30 (2 bytes)
    //                                nla_type: const = 0x1 (1 bytes)
    //                                NLA_F_NET_BYTEORDER: const = 0x0 (0 bytes)
    //                                NLA_F_NESTED: const = 0x1 (1 bytes)
    //                                payload: union nft_expr_policy {
    //                                  immediate:
    //                                  nft_expr_policy_t["immediate",
    //                                  nft_immediate_policy] {
    //                                    NFTA_EXPR_NAME:
    //                                    nlattr_t[const[NFTA_EXPR_NAME, int16],
    //                                    string["immediate"]] {
    //                                      nla_len: offsetof = 0xe (2 bytes)
    //                                      nla_type: const = 0x1 (2 bytes)
    //                                      payload: buffer: {69 6d 6d 65 64 69
    //                                      61 74 65 00} (length 0xa) size:
    //                                      buffer: {} (length 0x0) pad = 0x0 (2
    //                                      bytes)
    //                                    }
    //                                    NFTA_EXPR_DATA: union
    //                                    optional[nlnest[NFTA_EXPR_DATA,
    //                                    array[nft_immediate_policy]]] {
    //                                      val: nlattr_tt[const[NFTA_EXPR_DATA,
    //                                      int16:14], 0, 1,
    //                                      array[nft_immediate_policy]] {
    //                                        nla_len: offsetof = 0x1c (2 bytes)
    //                                        nla_type: const = 0x2 (1 bytes)
    //                                        NLA_F_NET_BYTEORDER: const = 0x0
    //                                        (0 bytes) NLA_F_NESTED: const =
    //                                        0x1 (1 bytes) payload:
    //                                        array[nft_immediate_policy] {
    //                                          union nft_immediate_policy {
    //                                            NFTA_IMMEDIATE_DREG:
    //                                            nlattr_tt[const[NFTA_IMMEDIATE_DREG,
    //                                            int16:14], 1, 0,
    //                                            flags[nft_registers, int32be]]
    //                                            {
    //                                              nla_len: offsetof = 0x8 (2
    //                                              bytes) nla_type: const = 0x1
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x1 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x0 (1 bytes)
    //                                              payload: nft_registers = 0x0
    //                                              (4 bytes) size: buffer: {}
    //                                              (length 0x0)
    //                                            }
    //                                          }
    //                                          union nft_immediate_policy {
    //                                            NFTA_IMMEDIATE_DATA:
    //                                            nlattr_tt[const[NFTA_IMMEDIATE_DATA,
    //                                            int16:14], 0, 1,
    //                                            array[nft_data_policy]] {
    //                                              nla_len: offsetof = 0x10 (2
    //                                              bytes) nla_type: const = 0x2
    //                                              (1 bytes)
    //                                              NLA_F_NET_BYTEORDER: const =
    //                                              0x0 (0 bytes) NLA_F_NESTED:
    //                                              const = 0x1 (1 bytes)
    //                                              payload:
    //                                              array[nft_data_policy] {
    //                                                union nft_data_policy {
    //                                                  NFTA_DATA_VERDICT:
    //                                                  nlattr_tt[const[NFTA_DATA_VERDICT,
    //                                                  int16:14], 0, 1,
    //                                                  array[nft_verdict_policy]]
    //                                                  {
    //                                                    nla_len: offsetof =
    //                                                    0xc (2 bytes)
    //                                                    nla_type: const = 0x2
    //                                                    (1 bytes)
    //                                                    NLA_F_NET_BYTEORDER:
    //                                                    const = 0x0 (0 bytes)
    //                                                    NLA_F_NESTED: const =
    //                                                    0x1 (1 bytes) payload:
    //                                                    array[nft_verdict_policy]
    //                                                    {
    //                                                      union
    //                                                      nft_verdict_policy {
    //                                                        NFTA_VERDICT_CODE:
    //                                                        nlattr_tt[const[NFTA_VERDICT_CODE,
    //                                                        int16:14], 0, 1,
    //                                                        flags[nft_verdicts,
    //                                                        int32be]] {
    //                                                          nla_len:
    //                                                          offsetof = 0x8
    //                                                          (2 bytes)
    //                                                          nla_type: const
    //                                                          = 0x1 (1 bytes)
    //                                                          NLA_F_NET_BYTEORDER:
    //                                                          const = 0x0 (0
    //                                                          bytes)
    //                                                          NLA_F_NESTED:
    //                                                          const = 0x1 (1
    //                                                          bytes) payload:
    //                                                          nft_verdicts =
    //                                                          0x1 (4 bytes)
    //                                                          size: buffer: {}
    //                                                          (length 0x0)
    //                                                        }
    //                                                      }
    //                                                    }
    //                                                    size: buffer: {}
    //                                                    (length 0x0)
    //                                                  }
    //                                                }
    //                                              }
    //                                              size: buffer: {} (length
    //                                              0x0)
    //                                            }
    //                                          }
    //                                        }
    //                                        size: buffer: {} (length 0x0)
    //                                      }
    //                                    }
    //                                  }
    //                                }
    //                                size: buffer: {} (length 0x0)
    //                              }
    //                            }
    //                            size: buffer: {} (length 0x0)
    //                          }
    //                        }
    //                      }
    //                    }
    //                  }
    //                }
    //                end: nft_nlmsghdr[NFNL_MSG_BATCH_END] {
    //                  nlmsg_len: len = 0x14 (4 bytes)
    //                  nlmsg_type: const = 0x11 (2 bytes)
    //                  nlmsg_flags: const = 0x1 (2 bytes)
    //                  nlmsg_seq: const = 0x0 (4 bytes)
    //                  nlmsg_pid: const = 0x0 (4 bytes)
    //                  hdr: nfgenmsg_nft {
    //                    nfgen_family: families = 0x0 (1 bytes)
    //                    version: const = 0x0 (1 bytes)
    //                    res_id: const = 0xa (2 bytes)
    //                  }
    //                }
    //              }
    //            }
    //            len: len = 0x4cc (8 bytes)
    //          }
    //        }
    //        vlen: const = 0x1 (8 bytes)
    //        ctrl: const = 0x0 (8 bytes)
    //        ctrllen: const = 0x0 (8 bytes)
    //        f: send_flags = 0x4040 (4 bytes)
    //        pad = 0x0 (4 bytes)
    //      }
    //    }
    //    f: nft_batch_send_flags = 0x4000000 (8 bytes)
    //  ]
    *(uint64_t*)0x200000001140 = 0;
    *(uint32_t*)0x200000001148 = 0;
    *(uint64_t*)0x200000001150 = 0x200000001100;
    *(uint64_t*)0x200000001100 = 0x200000000000;
    *(uint32_t*)0x200000000000 = 0x14;
    *(uint16_t*)0x200000000004 = 0x10;
    *(uint16_t*)0x200000000006 = 1;
    *(uint32_t*)0x200000000008 = 0;
    *(uint32_t*)0x20000000000c = 0;
    *(uint8_t*)0x200000000010 = 0;
    *(uint8_t*)0x200000000011 = 0;
    *(uint16_t*)0x200000000012 = htobe16(0xa);
    *(uint32_t*)0x200000000014 = 0x20;
    *(uint8_t*)0x200000000018 = 0;
    *(uint8_t*)0x200000000019 = 0xa;
    *(uint16_t*)0x20000000001a = 0x401;
    *(uint32_t*)0x20000000001c = 0;
    *(uint32_t*)0x200000000020 = 0;
    *(uint8_t*)0x200000000024 = 5;
    *(uint8_t*)0x200000000025 = 0;
    *(uint16_t*)0x200000000026 = htobe16(0);
    *(uint16_t*)0x200000000028 = 9;
    *(uint16_t*)0x20000000002a = 1;
    memcpy((void*)0x20000000002c, "syza\000", 5);
    *(uint32_t*)0x200000000034 = 0x60;
    *(uint8_t*)0x200000000038 = 3;
    *(uint8_t*)0x200000000039 = 0xa;
    *(uint16_t*)0x20000000003a = 0x401;
    *(uint32_t*)0x20000000003c = 0;
    *(uint32_t*)0x200000000040 = 0;
    *(uint8_t*)0x200000000044 = 5;
    *(uint8_t*)0x200000000045 = 0;
    *(uint16_t*)0x200000000046 = htobe16(0);
    *(uint16_t*)0x200000000048 = 9;
    *(uint16_t*)0x20000000004a = 1;
    memcpy((void*)0x20000000004c, "syza\000", 5);
    *(uint16_t*)0x200000000054 = 9;
    *(uint16_t*)0x200000000056 = 3;
    memcpy((void*)0x200000000058, "syzb\000", 5);
    *(uint16_t*)0x200000000060 = 0xa;
    *(uint16_t*)0x200000000062 = 7;
    memcpy((void*)0x200000000064, "filter\000", 7);
    *(uint16_t*)0x20000000006c = 0x28;
    STORE_BY_BITMASK(uint16_t, , 0x20000000006e, 4, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000006f, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000006f, 1, 7, 1);
    *(uint16_t*)0x200000000070 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000072, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000073, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000073, 0, 7, 1);
    *(uint32_t*)0x200000000074 = htobe32(1);
    *(uint16_t*)0x200000000078 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000007a, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000007b, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000007b, 0, 7, 1);
    *(uint32_t*)0x20000000007c = htobe32(0x12c);
    *(uint16_t*)0x200000000080 = 0x14;
    *(uint16_t*)0x200000000082 = 3;
    memcpy((void*)0x200000000084,
           "lo\000\000\000\000\000\000\000\000\000\000\000\000\000\000", 16);
    *(uint32_t*)0x200000000094 = 0x2c;
    *(uint8_t*)0x200000000098 = 3;
    *(uint8_t*)0x200000000099 = 0xa;
    *(uint16_t*)0x20000000009a = 0x401;
    *(uint32_t*)0x20000000009c = 0;
    *(uint32_t*)0x2000000000a0 = 0;
    *(uint8_t*)0x2000000000a4 = 5;
    *(uint8_t*)0x2000000000a5 = 0;
    *(uint16_t*)0x2000000000a6 = htobe16(0);
    *(uint16_t*)0x2000000000a8 = 9;
    *(uint16_t*)0x2000000000aa = 1;
    memcpy((void*)0x2000000000ac, "syza\000", 5);
    *(uint16_t*)0x2000000000b4 = 9;
    *(uint16_t*)0x2000000000b6 = 3;
    memcpy((void*)0x2000000000b8, "syze\000", 5);
    *(uint32_t*)0x2000000000c0 = 0x48;
    *(uint8_t*)0x2000000000c4 = 3;
    *(uint8_t*)0x2000000000c5 = 0xa;
    *(uint16_t*)0x2000000000c6 = 0x401;
    *(uint32_t*)0x2000000000c8 = 0;
    *(uint32_t*)0x2000000000cc = 0;
    *(uint8_t*)0x2000000000d0 = 5;
    *(uint8_t*)0x2000000000d1 = 0;
    *(uint16_t*)0x2000000000d2 = htobe16(0);
    *(uint16_t*)0x2000000000d4 = 9;
    *(uint16_t*)0x2000000000d6 = 1;
    memcpy((void*)0x2000000000d8, "syza\000", 5);
    *(uint16_t*)0x2000000000e0 = 9;
    *(uint16_t*)0x2000000000e2 = 3;
    memcpy((void*)0x2000000000e4, "syzb\000", 5);
    *(uint16_t*)0x2000000000ec = 0x1c;
    STORE_BY_BITMASK(uint16_t, , 0x2000000000ee, 8, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000000ef, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000000ef, 1, 7, 1);
    *(uint16_t*)0x2000000000f0 = 0xc;
    STORE_BY_BITMASK(uint16_t, , 0x2000000000f2, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000000f3, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000000f3, 0, 7, 1);
    *(uint64_t*)0x2000000000f4 = htobe64(-1);
    *(uint16_t*)0x2000000000fc = 0xc;
    STORE_BY_BITMASK(uint16_t, , 0x2000000000fe, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000000ff, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000000ff, 0, 7, 1);
    *(uint64_t*)0x200000000100 = htobe64(0);
    *(uint32_t*)0x200000000108 = 0xc8;
    *(uint8_t*)0x20000000010c = 6;
    *(uint8_t*)0x20000000010d = 0xa;
    *(uint16_t*)0x20000000010e = 0x401;
    *(uint32_t*)0x200000000110 = 0;
    *(uint32_t*)0x200000000114 = 0;
    *(uint8_t*)0x200000000118 = 5;
    *(uint8_t*)0x200000000119 = 0;
    *(uint16_t*)0x20000000011a = htobe16(0);
    *(uint16_t*)0x20000000011c = 9;
    *(uint16_t*)0x20000000011e = 1;
    memcpy((void*)0x200000000120, "syza\000", 5);
    *(uint16_t*)0x200000000128 = 9;
    *(uint16_t*)0x20000000012a = 2;
    memcpy((void*)0x20000000012c, "syze\000", 5);
    *(uint16_t*)0x200000000134 = 0x9c;
    STORE_BY_BITMASK(uint16_t, , 0x200000000136, 4, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000137, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000137, 1, 7, 1);
    *(uint16_t*)0x200000000138 = 0x68;
    STORE_BY_BITMASK(uint16_t, , 0x20000000013a, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000013b, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000013b, 1, 7, 1);
    *(uint16_t*)0x20000000013c = 0xa;
    *(uint16_t*)0x20000000013e = 1;
    memcpy((void*)0x200000000140, "inner\000", 6);
    *(uint16_t*)0x200000000148 = 0x58;
    STORE_BY_BITMASK(uint16_t, , 0x20000000014a, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000014b, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000014b, 1, 7, 1);
    *(uint16_t*)0x20000000014c = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000014e, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000014f, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000014f, 0, 7, 1);
    *(uint32_t*)0x200000000150 = htobe32(0);
    *(uint16_t*)0x200000000154 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000156, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000157, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000157, 0, 7, 1);
    *(uint32_t*)0x200000000158 = htobe32(2);
    *(uint16_t*)0x20000000015c = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000015e, 3, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000015f, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000015f, 0, 7, 1);
    *(uint32_t*)0x200000000160 = htobe32(9);
    *(uint16_t*)0x200000000164 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000166, 4, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000167, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000167, 0, 7, 1);
    *(uint32_t*)0x200000000168 = htobe32(0x1f);
    *(uint16_t*)0x20000000016c = 0x34;
    STORE_BY_BITMASK(uint16_t, , 0x20000000016e, 5, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000016f, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000016f, 1, 7, 1);
    *(uint16_t*)0x200000000170 = 0xc;
    *(uint16_t*)0x200000000172 = 1;
    memcpy((void*)0x200000000174, "payload\000", 8);
    *(uint16_t*)0x20000000017c = 0x24;
    STORE_BY_BITMASK(uint16_t, , 0x20000000017e, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000017f, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000017f, 1, 7, 1);
    *(uint16_t*)0x200000000180 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000182, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000183, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000183, 0, 7, 1);
    *(uint32_t*)0x200000000184 = htobe32(2);
    *(uint16_t*)0x200000000188 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000018a, 3, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000018b, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000018b, 0, 7, 1);
    *(uint32_t*)0x20000000018c = htobe32(4);
    *(uint16_t*)0x200000000190 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000192, 4, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000193, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000193, 0, 7, 1);
    *(uint32_t*)0x200000000194 = htobe32(1);
    *(uint16_t*)0x200000000198 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000019a, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000019b, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000019b, 0, 7, 1);
    *(uint32_t*)0x20000000019c = htobe32(1);
    *(uint16_t*)0x2000000001a0 = 0x30;
    STORE_BY_BITMASK(uint16_t, , 0x2000000001a2, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001a3, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001a3, 1, 7, 1);
    *(uint16_t*)0x2000000001a4 = 0xe;
    *(uint16_t*)0x2000000001a6 = 1;
    memcpy((void*)0x2000000001a8, "immediate\000", 10);
    *(uint16_t*)0x2000000001b4 = 0x1c;
    STORE_BY_BITMASK(uint16_t, , 0x2000000001b6, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001b7, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001b7, 1, 7, 1);
    *(uint16_t*)0x2000000001b8 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000001ba, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001bb, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001bb, 0, 7, 1);
    *(uint32_t*)0x2000000001bc = htobe32(0);
    *(uint16_t*)0x2000000001c0 = 0x10;
    STORE_BY_BITMASK(uint16_t, , 0x2000000001c2, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001c3, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001c3, 1, 7, 1);
    *(uint16_t*)0x2000000001c4 = 0xc;
    STORE_BY_BITMASK(uint16_t, , 0x2000000001c6, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001c7, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001c7, 1, 7, 1);
    *(uint16_t*)0x2000000001c8 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000001ca, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001cb, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001cb, 1, 7, 1);
    *(uint32_t*)0x2000000001cc = htobe32(0xfffffffb);
    *(uint32_t*)0x2000000001d0 = 0x30;
    *(uint8_t*)0x2000000001d4 = 3;
    *(uint8_t*)0x2000000001d5 = 0xa;
    *(uint16_t*)0x2000000001d6 = 0x401;
    *(uint32_t*)0x2000000001d8 = 0;
    *(uint32_t*)0x2000000001dc = 0;
    *(uint8_t*)0x2000000001e0 = 5;
    *(uint8_t*)0x2000000001e1 = 0;
    *(uint16_t*)0x2000000001e2 = htobe16(0);
    *(uint16_t*)0x2000000001e4 = 9;
    *(uint16_t*)0x2000000001e6 = 1;
    memcpy((void*)0x2000000001e8, "syza\000", 5);
    *(uint16_t*)0x2000000001f0 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000001f2, 0xb, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001f3, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001f3, 0, 7, 1);
    *(uint32_t*)0x2000000001f4 = htobe32(1);
    *(uint16_t*)0x2000000001f8 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000001fa, 0xa, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001fb, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000001fb, 0, 7, 1);
    *(uint32_t*)0x2000000001fc = htobe32(4);
    *(uint32_t*)0x200000000200 = 0x68;
    *(uint8_t*)0x200000000204 = 6;
    *(uint8_t*)0x200000000205 = 0xa;
    *(uint16_t*)0x200000000206 = 0x401;
    *(uint32_t*)0x200000000208 = 0;
    *(uint32_t*)0x20000000020c = 0;
    *(uint8_t*)0x200000000210 = 5;
    *(uint8_t*)0x200000000211 = 0;
    *(uint16_t*)0x200000000212 = htobe16(0);
    *(uint16_t*)0x200000000214 = 9;
    *(uint16_t*)0x200000000216 = 1;
    memcpy((void*)0x200000000218, "syza\000", 5);
    *(uint16_t*)0x200000000220 = 9;
    *(uint16_t*)0x200000000222 = 2;
    memcpy((void*)0x200000000224, "syze\000", 5);
    *(uint16_t*)0x20000000022c = 0x3c;
    STORE_BY_BITMASK(uint16_t, , 0x20000000022e, 4, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000022f, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000022f, 1, 7, 1);
    *(uint16_t*)0x200000000230 = 0x38;
    STORE_BY_BITMASK(uint16_t, , 0x200000000232, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000233, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000233, 1, 7, 1);
    *(uint16_t*)0x200000000234 = 0xe;
    *(uint16_t*)0x200000000236 = 1;
    memcpy((void*)0x200000000238, "immediate\000", 10);
    *(uint16_t*)0x200000000244 = 0x24;
    STORE_BY_BITMASK(uint16_t, , 0x200000000246, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000247, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000247, 1, 7, 1);
    *(uint16_t*)0x200000000248 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000024a, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000024b, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000024b, 0, 7, 1);
    *(uint32_t*)0x20000000024c = htobe32(0);
    *(uint16_t*)0x200000000250 = 0x18;
    STORE_BY_BITMASK(uint16_t, , 0x200000000252, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000253, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000253, 1, 7, 1);
    *(uint16_t*)0x200000000254 = 0x14;
    STORE_BY_BITMASK(uint16_t, , 0x200000000256, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000257, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000257, 1, 7, 1);
    *(uint16_t*)0x200000000258 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000025a, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000025b, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000025b, 1, 7, 1);
    *(uint32_t*)0x20000000025c = htobe32(0xfffffffd);
    *(uint16_t*)0x200000000260 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000262, 3, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000263, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000263, 0, 7, 1);
    *(uint32_t*)0x200000000264 = htobe32(1);
    *(uint32_t*)0x200000000268 = 0x30;
    *(uint8_t*)0x20000000026c = 3;
    *(uint8_t*)0x20000000026d = 0xa;
    *(uint16_t*)0x20000000026e = 0x401;
    *(uint32_t*)0x200000000270 = 0;
    *(uint32_t*)0x200000000274 = 0;
    *(uint8_t*)0x200000000278 = 5;
    *(uint8_t*)0x200000000279 = 0;
    *(uint16_t*)0x20000000027a = htobe16(0);
    *(uint16_t*)0x20000000027c = 9;
    *(uint16_t*)0x20000000027e = 1;
    memcpy((void*)0x200000000280, "syza\000", 5);
    *(uint16_t*)0x200000000288 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000028a, 0xb, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000028b, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000028b, 0, 7, 1);
    *(uint32_t*)0x20000000028c = htobe32(2);
    *(uint16_t*)0x200000000290 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000292, 0xa, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000293, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000293, 0, 7, 1);
    *(uint32_t*)0x200000000294 = htobe32(4);
    *(uint32_t*)0x200000000298 = 0x68;
    *(uint8_t*)0x20000000029c = 6;
    *(uint8_t*)0x20000000029d = 0xa;
    *(uint16_t*)0x20000000029e = 0x401;
    *(uint32_t*)0x2000000002a0 = 0;
    *(uint32_t*)0x2000000002a4 = 0;
    *(uint8_t*)0x2000000002a8 = 5;
    *(uint8_t*)0x2000000002a9 = 0;
    *(uint16_t*)0x2000000002aa = htobe16(0);
    *(uint16_t*)0x2000000002ac = 9;
    *(uint16_t*)0x2000000002ae = 1;
    memcpy((void*)0x2000000002b0, "syza\000", 5);
    *(uint16_t*)0x2000000002b8 = 9;
    *(uint16_t*)0x2000000002ba = 2;
    memcpy((void*)0x2000000002bc, "syzb\000", 5);
    *(uint16_t*)0x2000000002c4 = 0x3c;
    STORE_BY_BITMASK(uint16_t, , 0x2000000002c6, 4, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002c7, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002c7, 1, 7, 1);
    *(uint16_t*)0x2000000002c8 = 0x38;
    STORE_BY_BITMASK(uint16_t, , 0x2000000002ca, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002cb, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002cb, 1, 7, 1);
    *(uint16_t*)0x2000000002cc = 0xe;
    *(uint16_t*)0x2000000002ce = 1;
    memcpy((void*)0x2000000002d0, "immediate\000", 10);
    *(uint16_t*)0x2000000002dc = 0x24;
    STORE_BY_BITMASK(uint16_t, , 0x2000000002de, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002df, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002df, 1, 7, 1);
    *(uint16_t*)0x2000000002e0 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000002e2, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002e3, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002e3, 0, 7, 1);
    *(uint32_t*)0x2000000002e4 = htobe32(0);
    *(uint16_t*)0x2000000002e8 = 0x18;
    STORE_BY_BITMASK(uint16_t, , 0x2000000002ea, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002eb, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002eb, 1, 7, 1);
    *(uint16_t*)0x2000000002ec = 0x14;
    STORE_BY_BITMASK(uint16_t, , 0x2000000002ee, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002ef, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002ef, 1, 7, 1);
    *(uint16_t*)0x2000000002f0 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000002f2, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002f3, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002f3, 1, 7, 1);
    *(uint32_t*)0x2000000002f4 = htobe32(0xfffffffc);
    *(uint16_t*)0x2000000002f8 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000002fa, 3, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002fb, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000002fb, 0, 7, 1);
    *(uint32_t*)0x2000000002fc = htobe32(2);
    *(uint32_t*)0x200000000300 = 0x100;
    *(uint8_t*)0x200000000304 = 6;
    *(uint8_t*)0x200000000305 = 0xa;
    *(uint16_t*)0x200000000306 = 0x401;
    *(uint32_t*)0x200000000308 = 0;
    *(uint32_t*)0x20000000030c = 0;
    *(uint8_t*)0x200000000310 = 5;
    *(uint8_t*)0x200000000311 = 0;
    *(uint16_t*)0x200000000312 = htobe16(0);
    *(uint16_t*)0x200000000314 = 9;
    *(uint16_t*)0x200000000316 = 1;
    memcpy((void*)0x200000000318, "syza\000", 5);
    *(uint16_t*)0x200000000320 = 9;
    *(uint16_t*)0x200000000322 = 2;
    memcpy((void*)0x200000000324, "syzb\000", 5);
    *(uint16_t*)0x20000000032c = 0xd4;
    STORE_BY_BITMASK(uint16_t, , 0x20000000032e, 4, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000032f, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000032f, 1, 7, 1);
    *(uint16_t*)0x200000000330 = 0x58;
    STORE_BY_BITMASK(uint16_t, , 0x200000000332, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000333, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000333, 1, 7, 1);
    *(uint16_t*)0x200000000334 = 8;
    *(uint16_t*)0x200000000336 = 1;
    memcpy((void*)0x200000000338, "fib\000", 4);
    *(uint16_t*)0x20000000033c = 0x4c;
    STORE_BY_BITMASK(uint16_t, , 0x20000000033e, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000033f, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000033f, 1, 7, 1);
    *(uint16_t*)0x200000000340 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000342, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000343, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000343, 0, 7, 1);
    *(uint32_t*)0x200000000344 = htobe32(0);
    *(uint16_t*)0x200000000348 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000034a, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000034b, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000034b, 0, 7, 1);
    *(uint32_t*)0x20000000034c = htobe32(0x14);
    *(uint16_t*)0x200000000350 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000352, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000353, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000353, 0, 7, 1);
    *(uint32_t*)0x200000000354 = htobe32(0x11);
    *(uint16_t*)0x200000000358 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000035a, 3, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000035b, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000035b, 0, 7, 1);
    *(uint32_t*)0x20000000035c = htobe32(8);
    *(uint16_t*)0x200000000360 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000362, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000363, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000363, 0, 7, 1);
    *(uint32_t*)0x200000000364 = htobe32(1);
    *(uint16_t*)0x200000000368 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000036a, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000036b, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000036b, 0, 7, 1);
    *(uint32_t*)0x20000000036c = htobe32(3);
    *(uint16_t*)0x200000000370 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000372, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000373, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000373, 0, 7, 1);
    *(uint32_t*)0x200000000374 = htobe32(2);
    *(uint16_t*)0x200000000378 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000037a, 3, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000037b, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000037b, 0, 7, 1);
    *(uint32_t*)0x20000000037c = htobe32(0x30);
    *(uint16_t*)0x200000000380 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000382, 3, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000383, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000383, 0, 7, 1);
    *(uint32_t*)0x200000000384 = htobe32(1);
    *(uint16_t*)0x200000000388 = 0x2c;
    STORE_BY_BITMASK(uint16_t, , 0x20000000038a, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000038b, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000038b, 1, 7, 1);
    *(uint16_t*)0x20000000038c = 0xe;
    *(uint16_t*)0x20000000038e = 1;
    memcpy((void*)0x200000000390, "immediate\000", 10);
    *(uint16_t*)0x20000000039c = 0x18;
    STORE_BY_BITMASK(uint16_t, , 0x20000000039e, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000039f, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000039f, 1, 7, 1);
    *(uint16_t*)0x2000000003a0 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000003a2, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003a3, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003a3, 0, 7, 1);
    *(uint32_t*)0x2000000003a4 = htobe32(1);
    *(uint16_t*)0x2000000003a8 = 0xc;
    STORE_BY_BITMASK(uint16_t, , 0x2000000003aa, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003ab, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003ab, 1, 7, 1);
    *(uint16_t*)0x2000000003ac = 6;
    *(uint16_t*)0x2000000003ae = 1;
    memcpy((void*)0x2000000003b0, "\x21\xbb", 2);
    *(uint16_t*)0x2000000003b4 = 0x4c;
    STORE_BY_BITMASK(uint16_t, , 0x2000000003b6, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003b7, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003b7, 1, 7, 1);
    *(uint16_t*)0x2000000003b8 = 0xc;
    *(uint16_t*)0x2000000003ba = 1;
    memcpy((void*)0x2000000003bc, "bitwise\000", 8);
    *(uint16_t*)0x2000000003c4 = 0x3c;
    STORE_BY_BITMASK(uint16_t, , 0x2000000003c6, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003c7, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003c7, 1, 7, 1);
    *(uint16_t*)0x2000000003c8 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000003ca, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003cb, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003cb, 0, 7, 1);
    *(uint32_t*)0x2000000003cc = htobe32(1);
    *(uint16_t*)0x2000000003d0 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000003d2, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003d3, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003d3, 0, 7, 1);
    *(uint32_t*)0x2000000003d4 = htobe32(2);
    *(uint16_t*)0x2000000003d8 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000003da, 3, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003db, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003db, 0, 7, 1);
    *(uint32_t*)0x2000000003dc = htobe32(2);
    *(uint16_t*)0x2000000003e0 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000003e2, 6, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003e3, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003e3, 0, 7, 1);
    *(uint32_t*)0x2000000003e4 = htobe32(0);
    *(uint16_t*)0x2000000003e8 = 0xc;
    STORE_BY_BITMASK(uint16_t, , 0x2000000003ea, 4, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003eb, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003eb, 1, 7, 1);
    *(uint16_t*)0x2000000003ec = 6;
    *(uint16_t*)0x2000000003ee = 1;
    memcpy((void*)0x2000000003f0, "\xae\x4a", 2);
    *(uint16_t*)0x2000000003f4 = 0xc;
    STORE_BY_BITMASK(uint16_t, , 0x2000000003f6, 5, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003f7, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000003f7, 1, 7, 1);
    *(uint16_t*)0x2000000003f8 = 6;
    *(uint16_t*)0x2000000003fa = 1;
    memcpy((void*)0x2000000003fc, "\x04\x40", 2);
    *(uint32_t*)0x200000000400 = 0xb8;
    *(uint8_t*)0x200000000404 = 6;
    *(uint8_t*)0x200000000405 = 0xa;
    *(uint16_t*)0x200000000406 = 0x401;
    *(uint32_t*)0x200000000408 = 0;
    *(uint32_t*)0x20000000040c = 0;
    *(uint8_t*)0x200000000410 = 5;
    *(uint8_t*)0x200000000411 = 0;
    *(uint16_t*)0x200000000412 = htobe16(0);
    *(uint16_t*)0x200000000414 = 9;
    *(uint16_t*)0x200000000416 = 1;
    memcpy((void*)0x200000000418, "syza\000", 5);
    *(uint16_t*)0x200000000420 = 9;
    *(uint16_t*)0x200000000422 = 2;
    memcpy((void*)0x200000000424, "syzb\000", 5);
    *(uint16_t*)0x20000000042c = 0x8c;
    STORE_BY_BITMASK(uint16_t, , 0x20000000042e, 4, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000042f, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000042f, 1, 7, 1);
    *(uint16_t*)0x200000000430 = 0x58;
    STORE_BY_BITMASK(uint16_t, , 0x200000000432, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000433, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000433, 1, 7, 1);
    *(uint16_t*)0x200000000434 = 0xa;
    *(uint16_t*)0x200000000436 = 1;
    memcpy((void*)0x200000000438, "inner\000", 6);
    *(uint16_t*)0x200000000440 = 0x48;
    STORE_BY_BITMASK(uint16_t, , 0x200000000442, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000443, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000443, 1, 7, 1);
    *(uint16_t*)0x200000000444 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000446, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000447, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000447, 0, 7, 1);
    *(uint32_t*)0x200000000448 = htobe32(0);
    *(uint16_t*)0x20000000044c = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000044e, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000044f, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000044f, 0, 7, 1);
    *(uint32_t*)0x200000000450 = htobe32(1);
    *(uint16_t*)0x200000000454 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000456, 3, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000457, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000457, 0, 7, 1);
    *(uint32_t*)0x200000000458 = htobe32(2);
    *(uint16_t*)0x20000000045c = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000045e, 4, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000045f, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000045f, 0, 7, 1);
    *(uint32_t*)0x200000000460 = htobe32(0);
    *(uint16_t*)0x200000000464 = 0x24;
    STORE_BY_BITMASK(uint16_t, , 0x200000000466, 5, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000467, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000467, 1, 7, 1);
    *(uint16_t*)0x200000000468 = 9;
    *(uint16_t*)0x20000000046a = 1;
    memcpy((void*)0x20000000046c, "meta\000", 5);
    *(uint16_t*)0x200000000474 = 0x14;
    STORE_BY_BITMASK(uint16_t, , 0x200000000476, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000477, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000477, 1, 7, 1);
    *(uint16_t*)0x200000000478 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x20000000047a, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000047b, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000047b, 0, 7, 1);
    *(uint32_t*)0x20000000047c = htobe32(1);
    *(uint16_t*)0x200000000480 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x200000000482, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x200000000483, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x200000000483, 0, 7, 1);
    *(uint32_t*)0x200000000484 = htobe32(1);
    *(uint16_t*)0x200000000488 = 0x30;
    STORE_BY_BITMASK(uint16_t, , 0x20000000048a, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000048b, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000048b, 1, 7, 1);
    *(uint16_t*)0x20000000048c = 0xe;
    *(uint16_t*)0x20000000048e = 1;
    memcpy((void*)0x200000000490, "immediate\000", 10);
    *(uint16_t*)0x20000000049c = 0x1c;
    STORE_BY_BITMASK(uint16_t, , 0x20000000049e, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x20000000049f, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x20000000049f, 1, 7, 1);
    *(uint16_t*)0x2000000004a0 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000004a2, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000004a3, 1, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000004a3, 0, 7, 1);
    *(uint32_t*)0x2000000004a4 = htobe32(0);
    *(uint16_t*)0x2000000004a8 = 0x10;
    STORE_BY_BITMASK(uint16_t, , 0x2000000004aa, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000004ab, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000004ab, 1, 7, 1);
    *(uint16_t*)0x2000000004ac = 0xc;
    STORE_BY_BITMASK(uint16_t, , 0x2000000004ae, 2, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000004af, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000004af, 1, 7, 1);
    *(uint16_t*)0x2000000004b0 = 8;
    STORE_BY_BITMASK(uint16_t, , 0x2000000004b2, 1, 0, 14);
    STORE_BY_BITMASK(uint16_t, , 0x2000000004b3, 0, 6, 1);
    STORE_BY_BITMASK(uint16_t, , 0x2000000004b3, 1, 7, 1);
    *(uint32_t*)0x2000000004b4 = htobe32(1);
    *(uint32_t*)0x2000000004b8 = 0x14;
    *(uint16_t*)0x2000000004bc = 0x11;
    *(uint16_t*)0x2000000004be = 1;
    *(uint32_t*)0x2000000004c0 = 0;
    *(uint32_t*)0x2000000004c4 = 0;
    *(uint8_t*)0x2000000004c8 = 0;
    *(uint8_t*)0x2000000004c9 = 0;
    *(uint16_t*)0x2000000004ca = htobe16(0xa);
    *(uint64_t*)0x200000001108 = 0x4cc;
    *(uint64_t*)0x200000001158 = 1;
    *(uint64_t*)0x200000001160 = 0;
    *(uint64_t*)0x200000001168 = 0;
    *(uint32_t*)0x200000001170 = 0x4040;
    syscall(__NR_sendmsg, /*fd=*/r[0], /*msg=*/0x200000001140ul,
            /*f=MSG_ZEROCOPY*/ 0x4000000ul);
    break;
  case 4:
    //  syz_emit_ethernet arguments: [
    //    len: len = 0x4a (8 bytes)
    //    packet: ptr[in, eth_packet] {
    //      eth_packet {
    //        dst_mac: union mac_addr {
    //          local: mac_addr_t[const[0xaa, int8]] {
    //            a0: buffer: {aa aa aa aa aa} (length 0x5)
    //            a1: const = 0xaa (1 bytes)
    //          }
    //        }
    //        src_mac: union mac_addr {
    //          local: mac_addr_t[const[0xaa, int8]] {
    //            a0: buffer: {aa aa aa aa aa} (length 0x5)
    //            a1: const = 0xaa (1 bytes)
    //          }
    //        }
    //        vtag: union optional[vlan_tag] {
    //          void: buffer: {} (length 0x0)
    //        }
    //        payload: eth_payload {
    //          eth2: union eth2_packet {
    //            ipv6: eth2_packet_t[ETH_P_IPV6, ipv6_packet] {
    //              etype: const = 0x86dd (2 bytes)
    //              payload: union ipv6_packet {
    //                tcp: ipv6_packet_t[const[IPPROTO_TCP, int8], tcp_packet] {
    //                  priority: int8 = 0x5 (0 bytes)
    //                  version: const = 0x6 (1 bytes)
    //                  flow_label: buffer: {bd 1f 5a} (length 0x3)
    //                  length: len = 0x14 (2 bytes)
    //                  next_header: const = 0x6 (1 bytes)
    //                  hop_limit: hop_limits = 0x1 (1 bytes)
    //                  src_ip: union ipv6_addr {
    //                    local: ipv6_addr_t[const[0xaa, int8]] {
    //                      a0: const = 0xfe (1 bytes)
    //                      a1: const = 0x80 (1 bytes)
    //                      a2: buffer: {00 00 00 00 00 00 00 00 00 00 00 00 00}
    //                      (length 0xd) a3: const = 0xaa (1 bytes)
    //                    }
    //                  }
    //                  dst_ip: union ipv6_addr {
    //                    local: ipv6_addr_t[const[0xaa, int8]] {
    //                      a0: const = 0xfe (1 bytes)
    //                      a1: const = 0x80 (1 bytes)
    //                      a2: buffer: {00 00 00 00 00 00 00 00 00 00 00 00 00}
    //                      (length 0xd) a3: const = 0xaa (1 bytes)
    //                    }
    //                  }
    //                  payload: ipv6_packet_payload[tcp_packet] {
    //                    ext_headers: array[ipv6_ext_header] {
    //                    }
    //                    payload: tcp_packet {
    //                      header: tcp_header {
    //                        src_port: int16be = 0x4e21 (2 bytes)
    //                        dst_port: int16be = 0x4e22 (2 bytes)
    //                        seq_num: tcp_seq_num (resource)
    //                        ack_num: tcp_seq_num (resource)
    //                        ns: int8 = 0x1 (0 bytes)
    //                        reserved: const = 0x0 (0 bytes)
    //                        data_off: bytesize4 = 0x5 (1 bytes)
    //                        flags: tcp_flags = 0x40 (1 bytes)
    //                        window_size: int16be = 0x0 (2 bytes)
    //                        csum: csum = 0x0 (2 bytes)
    //                        urg_ptr: int16be = 0x2 (2 bytes)
    //                        options: tcp_options {
    //                          options: array[tcp_option] {
    //                          }
    //                        }
    //                      }
    //                      payload: tcp_payload {
    //                        payload: buffer: {} (length 0x0)
    //                      }
    //                    }
    //                  }
    //                }
    //              }
    //            }
    //          }
    //        }
    //      }
    //    }
    //    frags: nil
    //  ]
    memset((void*)0x200000003100, 170, 5);
    *(uint8_t*)0x200000003105 = 0xaa;
    memset((void*)0x200000003106, 170, 5);
    *(uint8_t*)0x20000000310b = 0xaa;
    *(uint16_t*)0x20000000310c = htobe16(0x86dd);
    STORE_BY_BITMASK(uint8_t, , 0x20000000310e, 5, 0, 4);
    STORE_BY_BITMASK(uint8_t, , 0x20000000310e, 6, 4, 4);
    memcpy((void*)0x20000000310f, "\xbd\x1f\x5a", 3);
    *(uint16_t*)0x200000003112 = htobe16(0x14);
    *(uint8_t*)0x200000003114 = 6;
    *(uint8_t*)0x200000003115 = 1;
    *(uint8_t*)0x200000003116 = 0xfe;
    *(uint8_t*)0x200000003117 = 0x80;
    memset((void*)0x200000003118, 0, 13);
    *(uint8_t*)0x200000003125 = 0xaa;
    *(uint8_t*)0x200000003126 = 0xfe;
    *(uint8_t*)0x200000003127 = 0x80;
    memset((void*)0x200000003128, 0, 13);
    *(uint8_t*)0x200000003135 = 0xaa;
    *(uint16_t*)0x200000003136 = htobe16(0x4e21);
    *(uint16_t*)0x200000003138 = htobe16(0x4e22);
    *(uint32_t*)0x20000000313a = 0x41424344;
    *(uint32_t*)0x20000000313e = 0x41424344;
    STORE_BY_BITMASK(uint8_t, , 0x200000003142, 1, 0, 1);
    STORE_BY_BITMASK(uint8_t, , 0x200000003142, 0, 1, 3);
    STORE_BY_BITMASK(uint8_t, , 0x200000003142, 5, 4, 4);
    *(uint8_t*)0x200000003143 = 0x40;
    *(uint16_t*)0x200000003144 = htobe16(0);
    *(uint16_t*)0x200000003146 = htobe16(0);
    *(uint16_t*)0x200000003148 = htobe16(2);
    struct csum_inet csum_5;
    csum_inet_init(&csum_5);
    csum_inet_update(&csum_5, (const uint8_t*)0x200000003116, 16);
    csum_inet_update(&csum_5, (const uint8_t*)0x200000003126, 16);
    uint32_t csum_5_chunk_2 = 0x14000000;
    csum_inet_update(&csum_5, (const uint8_t*)&csum_5_chunk_2, 4);
    uint32_t csum_5_chunk_3 = 0x6000000;
    csum_inet_update(&csum_5, (const uint8_t*)&csum_5_chunk_3, 4);
    csum_inet_update(&csum_5, (const uint8_t*)0x200000003136, 20);
    *(uint16_t*)0x200000003146 = csum_inet_digest(&csum_5);
    syz_emit_ethernet(/*len=*/0x4a, /*packet=*/0x200000003100, /*frags=*/0);
    break;
  }
}
int main(void)
{
  syscall(__NR_mmap, /*addr=*/0x1ffffffff000ul, /*len=*/0x1000ul, /*prot=*/0ul,
          /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul,
          /*fd=*/(intptr_t)-1, /*offset=*/0ul);
  syscall(__NR_mmap, /*addr=*/0x200000000000ul, /*len=*/0x1000000ul,
          /*prot=PROT_WRITE|PROT_READ|PROT_EXEC*/ 7ul,
          /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul,
          /*fd=*/(intptr_t)-1, /*offset=*/0ul);
  syscall(__NR_mmap, /*addr=*/0x200001000000ul, /*len=*/0x1000ul, /*prot=*/0ul,
          /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul,
          /*fd=*/(intptr_t)-1, /*offset=*/0ul);
  const char* reason;
  (void)reason;
  for (procid = 0; procid < 4; procid++) {
    if (fork() == 0) {
      use_temporary_dir();
      do_sandbox_namespace();
    }
  }
  sleep(1000000);
  return 0;
}

[-- Attachment #4: dmesg.txt --]
[-- Type: text/plain, Size: 68027 bytes --]

^[cSeaBIOS (version rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org)


iPXE (http://ipxe.org) 00:03.0 CA00 PCI2.10 PnP PMM+7EFD1C10+7EF31C10 CA00
Press Ctrl-B to configure iPXE (PCI 00:03.0)...                                                                               


Booting from ROM...
^[c[    0.000000] Linux version 7.1.0-gf0e6f20cb52b (gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #1 SMP PREEMPT_DYNAMIC Wed Jun 24 21:45:00 MSK 2026
[    0.000000] Command line: root=/dev/sda console=ttyS0 net.ifnames=0
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff]  System RAM
[    0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff]  device reserved
[    0.000000] BIOS-e820: [gap 0x00000000000a0000-0x00000000000effff]
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff]  device reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007ffdffff]  System RAM
[    0.000000] BIOS-e820: [mem 0x000000007ffe0000-0x000000007fffffff]  device reserved
[    0.000000] BIOS-e820: [gap 0x0000000080000000-0x00000000feffbfff]
[    0.000000] BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff]  device reserved
[    0.000000] BIOS-e820: [gap 0x00000000ff000000-0x00000000fffbffff]
[    0.000000] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff]  device reserved
[    0.000000] BIOS-e820: [gap 0x0000000100000000-0x000000fcffffffff]
[    0.000000] BIOS-e820: [mem 0x000000fd00000000-0x000000ffffffffff]  device reserved
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] APIC: Static calls initialized
[    0.000000] DMI: SMBIOS 2.8 present.
[    0.000000] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014
[    0.000000] DMI: Memory slots populated: 1/1
[    0.000000] Hypervisor detected: KVM
[    0.000000] last_pfn = 0x7ffe0 max_arch_pfn = 0x400000000
[    0.000000] kvm-clock: Using msrs 4b564d01 and 4b564d00
[    0.000001] kvm-clock: using sched offset of 673225673 cycles
[    0.000006] clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[    0.000014] tsc: Detected 3193.984 MHz processor
[    0.005248] last_pfn = 0x7ffe0 max_arch_pfn = 0x400000000
[    0.005287] MTRR map: 4 entries (3 fixed + 1 variable; max 19), built from 8 variable MTRRs
[    0.005294] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WP  UC- WT  
[    0.008028] found SMP MP-table at [mem 0x000f54b0-0x000f54bf]
[    0.008056] Using GB pages for direct mapping
[    0.009453] ACPI: Early table checksum verification disabled
[    0.009460] ACPI: RSDP 0x00000000000F52D0 000014 (v00 BOCHS )
[    0.009477] ACPI: RSDT 0x000000007FFE2389 000034 (v01 BOCHS  BXPC     00000001 BXPC 00000001)
[    0.009493] ACPI: FACP 0x000000007FFE2235 000074 (v01 BOCHS  BXPC     00000001 BXPC 00000001)
[    0.009511] ACPI: DSDT 0x000000007FFE0040 0021F5 (v01 BOCHS  BXPC     00000001 BXPC 00000001)
[    0.009523] ACPI: FACS 0x000000007FFE0000 000040
[    0.009532] ACPI: APIC 0x000000007FFE22A9 000080 (v03 BOCHS  BXPC     00000001 BXPC 00000001)
[    0.009543] ACPI: HPET 0x000000007FFE2329 000038 (v01 BOCHS  BXPC     00000001 BXPC 00000001)
[    0.009555] ACPI: WAET 0x000000007FFE2361 000028 (v01 BOCHS  BXPC     00000001 BXPC 00000001)
[    0.009565] ACPI: Reserving FACP table memory at [mem 0x7ffe2235-0x7ffe22a8]
[    0.009570] ACPI: Reserving DSDT table memory at [mem 0x7ffe0040-0x7ffe2234]
[    0.009575] ACPI: Reserving FACS table memory at [mem 0x7ffe0000-0x7ffe003f]
[    0.009579] ACPI: Reserving APIC table memory at [mem 0x7ffe22a9-0x7ffe2328]
[    0.009583] ACPI: Reserving HPET table memory at [mem 0x7ffe2329-0x7ffe2360]
[    0.009588] ACPI: Reserving WAET table memory at [mem 0x7ffe2361-0x7ffe2388]
[    0.010339] No NUMA configuration found
[    0.010343] Faking a node at [mem 0x0000000000000000-0x000000007ffdffff]
[    0.010353] NODE_DATA(0) allocated [mem 0x7ffdc680-0x7ffdffff]
[    0.268430] KernelAddressSanitizer initialized (generic)
[    0.268815] ACPI: PM-Timer IO Port: 0x608
[    0.268850] ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1])
[    0.268900] IOAPIC[0]: apic_id 0, version 17, address 0xfec00000, GSI 0-23
[    0.268913] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.268922] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level)
[    0.268927] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.268934] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level)
[    0.268940] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level)
[    0.268954] ACPI: Using ACPI (MADT) for SMP configuration information
[    0.268958] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.268971] TSC deadline timer available
[    0.268980] CPU topo: Max. logical packages:   1
[    0.268984] CPU topo: Max. logical nodes:      1
[    0.268986] CPU topo: Num. nodes per package:  1
[    0.268993] CPU topo: Max. logical dies:       1
[    0.268996] CPU topo: Max. dies per package:   1
[    0.269006] CPU topo: Max. threads per core:   1
[    0.269009] CPU topo: Num. cores per package:     2
[    0.269012] CPU topo: Num. threads per package:   2
[    0.269014] CPU topo: Allowing 2 present CPUs plus 0 hotplug CPUs
[    0.269062] kvm-guest: APIC: eoi() replaced with kvm_guest_apic_eoi_write()
[    0.269101] kvm-guest: KVM setup pv remote TLB flush
[    0.269106] kvm-guest: setup PV sched yield
[    0.269151] PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.269158] PM: hibernation: Registered nosave memory: [mem 0x0009f000-0x000fffff]
[    0.269167] [gap 0x80000000-0xfeffbfff] available for PCI devices
[    0.269173] Booting paravirtualized kernel on KVM
[    0.269182] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns
[    0.283994] Zone ranges:
[    0.284002]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.284010]   DMA32    [mem 0x0000000001000000-0x000000007ffdffff]
[    0.284016]   Normal   empty
[    0.284019] Movable zone start for each node
[    0.284022] Early memory node ranges
[    0.284023]   node   0: [mem 0x0000000000001000-0x000000000009efff]
[    0.284029]   node   0: [mem 0x0000000000100000-0x000000007ffdffff]
[    0.284035] Initmem setup node 0 [mem 0x0000000000001000-0x000000007ffdffff]
[    0.284068] On node 0, zone DMA: 1 pages in unavailable ranges
[    0.284438] On node 0, zone DMA: 97 pages in unavailable ranges
[    0.337404] On node 0, zone DMA32: 32 pages in unavailable ranges
[    0.337428] setup_percpu: NR_CPUS:64 nr_cpumask_bits:2 nr_cpu_ids:2 nr_node_ids:1
[    0.339309] percpu: Embedded 65 pages/cpu s225624 r8192 d32424 u1048576
[    0.339497] Kernel command line: net.ifnames=0 root=/dev/sda console=ttyS0 net.ifnames=0
[    0.339694] random: crng init done
[    0.339698] printk: log buffer data + meta data: 262144 + 917504 = 1179648 bytes
[    0.341610] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.342582] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.342981] Fallback order for Node 0: 0 
[    0.342995] Built 1 zonelists, mobility grouping on.  Total pages: 524158
[    0.343002] Policy zone: DMA32
[    0.343010] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.343016] stackdepot: allocating hash table via alloc_large_system_hash
[    0.343028] stackdepot hash table entries: 1048576 (order: 12, 16777216 bytes, linear)
[    0.359568] stackdepot: allocating space for 8192 stack pools via memblock
[    0.404243] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.404641] Dynamic Preempt: full
[    0.404900] rcu: Preemptible hierarchical RCU implementation.
[    0.404903] rcu: 	RCU event tracing is enabled.
[    0.404905] rcu: 	RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=2.
[    0.404911] 	Trampoline variant of Tasks RCU enabled.
[    0.404913] 	Tracing variant of Tasks RCU enabled.
[    0.404916] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.
[    0.404920] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.404963] RCU Tasks: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=2.
[    0.447737] NR_IRQS: 4352, nr_irqs: 440, preallocated irqs: 16
[    0.448115] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.448132] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.452893] Console: colour VGA+ 80x25
[    0.453070] printk: legacy console [ttyS0] enabled
[    0.549803] ACPI: Core revision 20260408
[    0.550712] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604467 ns
[    0.551988] APIC: Switch to symmetric I/O mode setup
[    0.552825] x2apic enabled
[    0.553683] APIC: Switched APIC routing to: physical x2apic
[    0.554572] kvm-guest: APIC: send_IPI_mask() replaced with kvm_send_ipi_mask()
[    0.555692] kvm-guest: APIC: send_IPI_mask_allbutself() replaced with kvm_send_ipi_mask_allbutself()
[    0.556900] kvm-guest: setup PV IPIs
[    0.558898] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.559841] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x2e0a16d682b, max_idle_ns: 440795210620 ns
[    0.561308] Calibrating delay loop (skipped) preset value.. 6387.96 BogoMIPS (lpj=3193984)
[    0.562422] x86/cpu: User Mode Instruction Prevention (UMIP) activated
[    0.563417] Last level iTLB entries: 4KB 512, 2MB 255, 4MB 127
[    0.564301] Last level dTLB entries: 4KB 512, 2MB 255, 4MB 127, 1GB 0
[    0.565308] mitigations: Enabled attack vectors: user_kernel, user_user, SMT mitigations: auto
[    0.566304] Speculative Store Bypass: Mitigation: Speculative Store Bypass disabled via prctl
[    0.567302] Speculative Return Stack Overflow: IBPB-extending microcode not applied!
[    0.568300] Speculative Return Stack Overflow: WARNING: See https://kernel.org/doc/html/latest/admin-guide/hw-vuln/srso.html for mitigation options.
[    0.568305] Transient Scheduler Attacks: Vulnerable: No microcode
[    0.570303] Spectre V2 : Mitigation: Retpolines
[    0.571307] Speculative Return Stack Overflow: Vulnerable: Safe RET, no microcode
[    0.572301] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization
[    0.573303] Spectre V2 : Spectre v2 / SpectreRSB: Filling RSB on context switch and VMEXIT
[    0.574301] Spectre V2 : Enabling Restricted Speculation for firmware calls
[    0.575313] Spectre V2 : mitigation: Enabling conditional Indirect Branch Prediction Barrier
[    0.576307] active return thunk: srso_alias_return_thunk
[    0.577337] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.578301] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.579300] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.580300] x86/fpu: Supporting XSAVE feature 0x200: 'Protection Keys User registers'
[    0.581306] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.582302] x86/fpu: xstate_offset[9]:  832, xstate_sizes[9]:    8
[    0.583300] x86/fpu: Enabled xstate features 0x207, context size is 840 bytes, using 'compacted' format.
[    0.683643] pid_max: default: 32768 minimum: 301
[    0.684767] SELinux:  Initializing.
[    0.686876] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.687315] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.689682] VFS: Finished mounting rootfs on nullfs
[    0.692066] smpboot: CPU0: AMD Ryzen 7 5800HS with Radeon Graphics (family: 0x19, model: 0x50, stepping: 0x0)
[    0.693131] Performance Events: Fam17h+ core perfctr, AMD PMU driver.
[    0.693309] ... version:                   0
[    0.693897] ... bit width:                 48
[    0.694307] ... generic counters:          6
[    0.694877] ... generic bitmap:            000000000000003f
[    0.695307] ... fixed-purpose counters:    0
[    0.695885] ... fixed-purpose bitmap:      0000000000000000
[    0.696304] ... value mask:                0000ffffffffffff
[    0.697049] ... max period:                00007fffffffffff
[    0.697304] ... global_ctrl mask:          000000000000003f
[    0.698657] signal: max sigframe size: 3376
[    0.699390] rcu: Hierarchical SRCU implementation.
[    0.700215] rcu: 	Max phase no-delay instances is 400.
[    0.700574] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[    0.729644] smp: Bringing up secondary CPUs ...
[    0.730744] smpboot: x86: Booting SMP configuration:
[    0.731317] .... node  #0, CPUs:      #1
[    0.731442] smp: Brought up 1 node, 2 CPUs
[    0.732840] smpboot: Total of 2 processors activated (12775.93 BogoMIPS)
[    0.733792] Memory: 1655840K/2096632K available (60933K kernel code, 9815K rwdata, 13360K rodata, 10624K init, 840K bss, 435640K reserved, 0K cma-reserved)
[    0.734703] devtmpfs: initialized
[    0.744347] posixtimers hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    0.745334] futex hash table entries: 512 (32768 bytes on 1 NUMA nodes, total 32 KiB, linear).
[    0.747223] PM: RTC time: 18:46:30, date: 2026-06-24
[    0.748292] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.750708] audit: initializing netlink subsys (disabled)
[    0.752390] audit: type=2000 audit(1782326790.342:1): state=initialized audit_enabled=0 res=1
[    0.753655] thermal_sys: Registered thermal governor 'step_wise'
[    0.753784] cpuidle: using governor menu
[    0.755703] Freeing SMP alternatives memory: 56K
[    0.757253] PCI: Using configuration type 1 for base access
[    0.757306] PCI: Using configuration type 1 for extended access
[    0.758835] kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible.
[    0.761415] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.762308] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[    0.765869] ACPI: Added _OSI(Module Device)
[    0.766321] ACPI: Added _OSI(Processor Device)
[    0.766966] ACPI: Added _OSI(Processor Aggregator Device)
[    0.814081] ACPI: 1 ACPI AML tables successfully acquired and loaded
[    0.820515] ACPI: \_SB_: platform _OSC: OS support mask [002a7eee]
[    0.826167] ACPI: Interpreter enabled
[    0.826791] ACPI: PM: (supports S0 S3 S4 S5)
[    0.827311] ACPI: Using IOAPIC for interrupt routing
[    0.828305] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.829305] PCI: Using E820 reservations for host bridge windows
[    0.832768] ACPI: Enabled 2 GPEs in block 00 to 0F
[    0.913002] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.913390] acpi PNP0A03:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI HPX-Type3]
[    0.914528] acpi PNP0A03:00: _OSC: OS requested [PME PCIeCapability LTR]
[    0.915321] acpi PNP0A03:00: _OSC: platform willing to grant [PME PCIeCapability LTR]
[    0.916311] acpi PNP0A03:00: _OSC: platform retains control of PCIe features (AE_ERROR)
[    0.919490] PCI host bridge to bus 0000:00
[    0.920234] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7 window]
[    0.920325] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff window]
[    0.921317] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window]
[    0.922320] pci_bus 0000:00: root bus resource [mem 0x80000000-0xfebfffff window]
[    0.923326] pci_bus 0000:00: root bus resource [mem 0x100000000-0x17fffffff window]
[    0.924345] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.925539] pci 0000:00:00.0: [8086:1237] type 00 class 0x060000 conventional PCI endpoint
[    0.929019] pci 0000:00:01.0: [8086:7000] type 00 class 0x060100 conventional PCI endpoint
[    0.931709] pci 0000:00:01.1: [8086:7010] type 00 class 0x010180 conventional PCI endpoint
[    0.933389] pci 0000:00:01.1: BAR 4 [io  0xc080-0xc08f]
[    0.934245] pci 0000:00:01.1: BAR 0 [io  0x01f0-0x01f7]: legacy IDE quirk
[    0.934312] pci 0000:00:01.1: BAR 1 [io  0x03f6]: legacy IDE quirk
[    0.935315] pci 0000:00:01.1: BAR 2 [io  0x0170-0x0177]: legacy IDE quirk
[    0.936281] pci 0000:00:01.1: BAR 3 [io  0x0376]: legacy IDE quirk
[    0.940050] pci 0000:00:01.3: [8086:7113] type 00 class 0x068000 conventional PCI endpoint
[    0.940713] pci 0000:00:01.3: quirk: [io  0x0600-0x063f] claimed by PIIX4 ACPI
[    0.941321] pci 0000:00:01.3: quirk: [io  0x0700-0x070f] claimed by PIIX4 SMB
[    0.944738] pci 0000:00:02.0: [1234:1111] type 00 class 0x030000 conventional PCI endpoint
[    0.947245] pci 0000:00:02.0: BAR 0 [mem 0xfd000000-0xfdffffff pref]
[    0.948284] pci 0000:00:02.0: BAR 2 [mem 0xfebf0000-0xfebf0fff]
[    0.949297] pci 0000:00:02.0: ROM [mem 0xfebe0000-0xfebeffff pref]
[    0.950982] pci 0000:00:02.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff]
[    0.954095] pci 0000:00:03.0: [8086:100e] type 00 class 0x020000 conventional PCI endpoint
[    0.955317] pci 0000:00:03.0: BAR 0 [mem 0xfebc0000-0xfebdffff]
[    0.956149] pci 0000:00:03.0: BAR 1 [io  0xc000-0xc03f]
[    0.956350] pci 0000:00:03.0: ROM [mem 0xfeb80000-0xfebbffff pref]
[    0.986934] pci 0000:00:04.0: [1af4:1009] type 00 class 0x000200 conventional PCI endpoint
[    0.989011] pci 0000:00:04.0: BAR 0 [io  0xc040-0xc07f]
[    0.989317] pci 0000:00:04.0: BAR 1 [mem 0xfebf1000-0xfebf1fff]
[    0.990154] pci 0000:00:04.0: BAR 4 [mem 0xfe000000-0xfe003fff 64bit pref]
[    1.028794] ACPI: PCI: Interrupt link LNKA configured for IRQ 10
[    1.031862] ACPI: PCI: Interrupt link LNKB configured for IRQ 10
[    1.034815] ACPI: PCI: Interrupt link LNKC configured for IRQ 11
[    1.038123] ACPI: PCI: Interrupt link LNKD configured for IRQ 11
[    1.039341] ACPI: PCI: Interrupt link LNKS configured for IRQ 9
[    1.049932] iommu: Default domain type: Translated
[    1.050309] iommu: DMA domain TLB invalidation policy: lazy mode
[    1.052923] SCSI subsystem initialized
[    1.054692] ACPI: bus type USB registered
[    1.055755] usbcore: registered new interface driver usbfs
[    1.056516] usbcore: registered new interface driver hub
[    1.057417] usbcore: registered new device driver usb
[    1.058556] pps_core: LinuxPPS API ver. 1 registered
[    1.059290] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.060374] PTP clock support registered
[    1.062955] Advanced Linux Sound Architecture Driver Initialized.
[    1.066724] NetLabel: Initializing
[    1.067308] NetLabel:  domain hash size = 128
[    1.067937] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    1.068655] NetLabel:  unlabeled traffic allowed by default
[    1.070252] PCI: Using ACPI for IRQ routing
[    1.070481] e820: register RAM buffer resource [mem 0x0009fc00-0x0009ffff]
[    1.071335] e820: register RAM buffer resource [mem 0x7ffe0000-0x7fffffff]
[    1.072687] pci 0000:00:02.0: vgaarb: setting as boot VGA device
[    1.073297] pci 0000:00:02.0: vgaarb: bridge control possible
[    1.073297] pci 0000:00:02.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
[    1.073311] vgaarb: loaded
[    1.074783] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
[    1.075304] hpet0: 3 comparators, 64-bit 100.000000 MHz counter
[    1.079626] clocksource: Switched to clocksource kvm-clock
[    1.081994] VFS: Disk quotas dquot_6.6.0
[    1.082681] VFS: Dquot-cache hash table entries: 512 (4096 bytes)
[    1.087146] pnp: PnP ACPI init
[    1.094159] pnp: PnP ACPI: found 5 devices
[    1.118667] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[    1.120462] NET: Registered PF_INET protocol family
[    1.121509] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    1.125142] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    1.126560] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    1.127856] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    1.129772] TCP bind hash table entries: 16384 (order: 7, 524288 bytes, linear)
[    1.131684] TCP: Hash tables configured (established 16384 bind 16384)
[    1.133209] UDP hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    1.134994] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    1.137188] RPC: Registered named UNIX socket transport module.
[    1.138075] RPC: Registered udp transport module.
[    1.138761] RPC: Registered tcp transport module.
[    1.139432] RPC: Registered tcp-with-tls transport module.
[    1.140182] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.145328] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7 window]
[    1.146235] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff window]
[    1.147098] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window]
[    1.148056] pci_bus 0000:00: resource 7 [mem 0x80000000-0xfebfffff window]
[    1.149022] pci_bus 0000:00: resource 8 [mem 0x100000000-0x17fffffff window]
[    1.150718] pci 0000:00:01.0: PIIX3: Enabling Passive Release
[    1.151538] pci 0000:00:00.0: Limiting direct PCI/PCI transfers
[    1.152654] PCI: CLS 0 bytes, default 64
[    1.153726] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x2e0a16d682b, max_idle_ns: 440795210620 ns
[    1.165723] Initialise system trusted keyrings
[    1.166738] workingset: timestamp_bits=40 (anon: 35) max_order=19 bucket_order=0 (anon: 0)
[    1.171126] NFS: Registering the id_resolver key type
[    1.171884] Key type id_resolver registered
[    1.172479] Key type id_legacy registered
[    1.173057] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.174090] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    1.175942] 9p: Installing v9fs 9p2000 file system support
[    1.208579] Key type asymmetric registered
[    1.209217] Asymmetric key parser 'x509' registered
[    1.210540] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    1.211749] io scheduler mq-deadline registered
[    1.212383] io scheduler kyber registered
[    1.215714] input: Power Button as /devices/platform/LNXPWRBN:00/input/input0
[    1.217224] ACPI: button: Power Button [PWRF]
[    1.259827] ACPI: \_SB_.LNKD: Enabled at IRQ 11
[    1.263037] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.265675] 00:04: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    1.277076] Non-volatile memory driver v1.3
[    1.278836] ACPI: bus type drm_connector registered
[    1.297152] loop: module loaded
[    1.304497] scsi host0: ata_piix
[    1.308863] scsi host1: ata_piix
[    1.309882] ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc080 irq 14 lpm-pol 0
[    1.310948] ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc088 irq 15 lpm-pol 0
[    1.318427] tun: Universal TUN/TAP device driver, 1.6
[    1.319803] e100: Intel(R) PRO/100 Network Driver
[    1.320466] e100: Copyright(c) 1999-2006 Intel Corporation
[    1.321386] e1000: Intel(R) PRO/1000 Network Driver
[    1.322054] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    1.362563] ACPI: \_SB_.LNKC: Enabled at IRQ 10
[    1.466402] ata1: found unknown device (class 0)
[    1.468808] ata2: found unknown device (class 0)
[    1.470353] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100
[    1.471385] ata1.00: Model 'QEMU HARDDISK', rev '2.5+', applying quirks: bridgeok
[    1.473903] ata1.00: ATA-7: QEMU HARDDISK, 2.5+, max UDMA/100
[    1.474724] ata1.00: 4194304 sectors, multi 16: LBA48 
[    1.479999] scsi 0:0:0:0: Direct-Access     ATA      QEMU HARDDISK    2.5+ PQ: 0 ANSI: 5
[    1.486747] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    1.487649] sd 0:0:0:0: [sda] 4194304 512-byte logical blocks: (2.15 GB/2.00 GiB)
[    1.490761] sd 0:0:0:0: [sda] Write Protect is off
[    1.493535] scsi 1:0:0:0: CD-ROM            QEMU     QEMU DVD-ROM     2.5+ PQ: 0 ANSI: 5
[    1.494832] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.498071] sd 0:0:0:0: [sda] Preferred minimum I/O size 512 bytes
[    1.512975] sd 0:0:0:0: [sda] Attached SCSI disk
[    1.516825] sr 1:0:0:0: [sr0] scsi3-mmc drive: 4x/4x cd/rw xa/form2 tray
[    1.528968] cdrom: Uniform CD-ROM driver Revision: 3.20
[    1.543403] sr 1:0:0:0: Attached scsi generic sg1 type 5
[    1.667232] e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 52:54:00:12:34:56
[    1.668242] e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection
[    1.669414] e1000e: Intel(R) PRO/1000 Network Driver
[    1.670080] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    1.671117] sky2: driver version 1.30
[    1.673771] usbcore: registered new interface driver usblp
[    1.674691] usbcore: registered new interface driver usb-storage
[    1.675910] i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12
[    1.678058] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.679109] serio: i8042 AUX port at 0x60,0x64 irq 12
[    1.682038] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input1
[    1.683314] rtc_cmos PNP0B00:00: RTC can wake from S4
[    1.686557] rtc_cmos PNP0B00:00: registered as rtc0
[    1.687530] rtc_cmos PNP0B00:00: alarms up to one day, y3k, 242 bytes nvram, hpet irqs
[    1.693085] device-mapper: ioctl: 4.50.0-ioctl (2025-04-28) initialised: dm-devel@lists.linux.dev
[    1.694431] amd_pstate: The CPPC feature is supported but currently disabled by the BIOS.
[    1.694431] Please enable it if your BIOS has the CPPC option.
[    1.696351] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled
[    1.697913] hid: raw HID events driver (C) Jiri Kosina
[    1.701590] usbcore: registered new interface driver usbhid
[    1.702380] usbhid: USB HID core driver
[    1.707654] Initializing XFRM netlink socket
[    1.708557] NET: Registered PF_INET6 protocol family
[    1.711926] Segment Routing with IPv6
[    1.712598] In-situ OAM (IOAM) with IPv6
[    1.713362] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.715858] NET: Registered PF_PACKET protocol family
[    1.716818] 8021q: 802.1Q VLAN Support v1.8
[    1.717584] 9pnet: Installing 9P2000 support
[    1.719953] Key type dns_resolver registered
[    1.722209] IPI shorthand broadcast: enabled
[    1.784140] sched_clock: Marking stable (1677003577, 106165972)->(1840780998, -57611449)
[    1.786367] registered taskstats version 1
[    1.786925] Loading compiled-in X.509 certificates
[    1.836502] Demotion targets for Node 0: null
[    1.837760] PM:   Magic number: 14:948:797
[    1.838545] netconsole: network logging started
[    1.839758] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    1.841532] kworker/u8:2 (60) used greatest stack depth: 29312 bytes left
[    1.843333] cryptomgr_probe (62) used greatest stack depth: 29136 bytes left
[    1.845590] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    1.848249] Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600'
[    1.849547] faux_driver regulatory: Direct firmware load for regulatory.db failed with error -2
[    1.850803] cfg80211: failed to load regulatory.db
[    2.107745] input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input3
[    6.602002] ALSA device list:
[    6.602521]   No soundcards found.
[    6.603607] md: Waiting for all devices to be available before autodetect
[    6.604412] md: If you don't use raid, use raid=noautodetect
[    6.605054] md: Autodetecting RAID arrays.
[    6.605559] md: autorun ...
[    6.605899] md: ... autorun DONE.
[    6.612873] EXT4-fs (sda): INFO: recovery required on readonly filesystem
[    6.613860] EXT4-fs (sda): write access will be enabled during recovery
[    6.654971] EXT4-fs (sda): recovery complete
[    6.656773] EXT4-fs (sda): mounted filesystem 1ad6e232-a749-44cb-8d6a-dabbf94e2ee4 ro with ordered data mode. Quota mode: none.
[    6.658085] VFS: Mounted root (ext4 filesystem) readonly on device 8:0.
[    6.659664] devtmpfs: mounted
[    6.660149] VFS: Pivoted into new rootfs
[    6.670153] Freeing unused kernel image (initmem) memory: 10624K
[    6.671118] Write protecting the kernel read-only data: 75776k
[    6.674026] Freeing unused kernel image (text/rodata gap) memory: 504K
[    6.676062] Freeing unused kernel image (rodata/data gap) memory: 976K
[    6.915262] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[    6.915973] Run /sbin/init as init process
[    7.518504] SELinux:  Permission firmware_load in class system not defined in policy.
[    7.519330] SELinux:  Permission kexec_image_load in class system not defined in policy.
[    7.520126] SELinux:  Permission kexec_initramfs_load in class system not defined in policy.
[    7.520973] SELinux:  Permission policy_load in class system not defined in policy.
[    7.521770] SELinux:  Permission x509_certificate_load in class system not defined in policy.
[    7.522729] SELinux:  Permission watch_mountns in class file not defined in policy.
[    7.523552] SELinux:  Permission watch_mountns in class dir not defined in policy.
[    7.524338] SELinux:  Permission watch_mountns in class lnk_file not defined in policy.
[    7.525126] SELinux:  Permission watch_mountns in class chr_file not defined in policy.
[    7.526052] SELinux:  Permission watch_mountns in class blk_file not defined in policy.
[    7.526988] SELinux:  Permission watch_mountns in class sock_file not defined in policy.
[    7.527929] SELinux:  Permission watch_mountns in class fifo_file not defined in policy.
[    7.529348] SELinux:  Permission map_create_as in class bpf not defined in policy.
[    7.530218] SELinux:  Permission prog_load_as in class bpf not defined in policy.
[    7.531020] SELinux:  Permission watch_mountns in class anon_inode not defined in policy.
[    7.531914] SELinux:  Permission allowed in class io_uring not defined in policy.
[    7.532680] SELinux:  Class memfd_file not defined in policy.
[    7.533307] SELinux: the above unknown classes and permissions will be allowed
[    7.577111] SELinux:  policy capability network_peer_controls=1
[    7.577781] SELinux:  policy capability open_perms=1
[    7.578298] SELinux:  policy capability extended_socket_class=1
[    7.578907] SELinux:  policy capability always_check_network=0
[    7.579505] SELinux:  policy capability cgroup_seclabel=1
[    7.580060] SELinux:  policy capability nnp_nosuid_transition=1
[    7.580679] SELinux:  policy capability genfs_seclabel_symlinks=0
[    7.581310] SELinux:  policy capability ioctl_skip_cloexec=0
[    7.581876] SELinux:  policy capability userspace_initial_context=0
[    7.582520] SELinux:  policy capability netlink_xperm=0
[    7.583055] SELinux:  policy capability netif_wildcard=0
[    7.583608] SELinux:  policy capability genfs_seclabel_wildcard=0
[    7.584229] SELinux:  policy capability functionfs_seclabel=0
[    7.584814] SELinux:  policy capability memfd_class=0
[    7.585336] SELinux:  policy capability bpf_token_perms=0
[    7.611391] audit: type=1403 audit(1782326797.200:2): auid=4294967295 ses=4294967295 lsm=selinux res=1
[    7.616798] systemd[1]: Successfully loaded SELinux policy in 591.933ms.
[    7.754149] systemd[1]: Relabeled /dev/, /dev/shm/, /run/ in 47.677ms.
^[[!p^[]104\a[    7.771080] systemd[1]: systemd 257.9-1~deb13u1 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +IPE +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2 +PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK +BTF -XKBCOMMON -UTMP +SYSVINIT +LIBARCHIVE)
[    7.774883] systemd[1]: Detected virtualization kvm.
[    7.775759] systemd[1]: Detected architecture x86-64.

Welcome to Debian GNU/Linux 13 (trixie)!

[    7.780252] systemd[1]: Hostname set to <syzkaller>.
[    7.810049] systemd[1]: bpf-restrict-fs: BPF LSM hook not enabled in the kernel, BPF LSM not supported.
[    7.887394] selinuxenabled (75) used greatest stack depth: 26624 bytes left
[    7.924749] systemd-debug-g (70) used greatest stack depth: 25888 bytes left
[    7.954615] grep (78) used greatest stack depth: 25712 bytes left
[    7.961975] systemd-fstab-g (71) used greatest stack depth: 25616 bytes left
[    8.056978] systemd-ssh-gen (79) used greatest stack depth: 25488 bytes left
[    8.260128] systemd[1]: Queued start job for default target graphical.target.
[    8.306889] systemd[1]: Created slice system-getty.slice - Slice /system/getty.
[  OK  ] Created slice system-getty.slice - Slice /system/getty.
[    8.322978] systemd[1]: Created slice system-modprobe.slice - Slice /system/modprobe.
[  OK  ] Created slice system-modprobe.slice - Slice /system/modprobe.
[    8.338479] systemd[1]: Created slice system-serial\x2dgetty.slice - Slice /system/serial-getty.
[  OK  ] Created slice system-serial\x2dget…slice - Slice /system/serial-getty.
[    8.353710] systemd[1]: Created slice user.slice - User and Session Slice.
[  OK  ] Created slice user.slice - User and Session Slice.
[    8.356242] systemd[1]: Started systemd-ask-password-console.path - Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started systemd-ask-password-conso…equests to Console Directory Watch.
[    8.359342] systemd[1]: Started systemd-ask-password-wall.path - Forward Password Requests to Wall Directory Watch.
[  OK  ] Started systemd-ask-password-wall.…d Requests to Wall Directory Watch.
[    8.363902] systemd[1]: Set up automount proc-sys-fs-binfmt_misc.automount - Arbitrary Executable File Formats File System Automount Point.
[  OK  ] Set up automount proc-sys-fs-binfm…ormats File System Automount Point.
[    8.366601] systemd[1]: Expecting device dev-ttyS0.device - /dev/ttyS0...
         Expecting device dev-ttyS0.device - /dev/ttyS0...
[    8.368387] systemd[1]: Reached target paths.target - Path Units.
[  OK  ] Reached target paths.target - Path Units.
[    8.370046] systemd[1]: Reached target remote-fs.target - Remote File Systems.
[  OK  ] Reached target remote-fs.target - Remote File Systems.
[    8.371949] systemd[1]: Reached target slices.target - Slice Units.
[  OK  ] Reached target slices.target - Slice Units.
[    8.373674] systemd[1]: Reached target swap.target - Swaps.
[  OK  ] Reached target swap.target - Swaps.
[    8.378637] systemd[1]: Listening on systemd-creds.socket - Credential Encryption/Decryption.
[  OK  ] Listening on systemd-creds.socket - Credential Encryption/Decryption.
[    8.381811] systemd[1]: Listening on systemd-initctl.socket - initctl Compatibility Named Pipe.
[  OK  ] Listening on systemd-initctl.socke…- initctl Compatibility Named Pipe.
[    8.387292] systemd[1]: Listening on systemd-journald-dev-log.socket - Journal Socket (/dev/log).
[  OK  ] Listening on systemd-journald-dev-…socket - Journal Socket (/dev/log).
[    8.391700] systemd[1]: Listening on systemd-journald.socket - Journal Sockets.
[  OK  ] Listening on systemd-journald.socket - Journal Sockets.
[    8.393968] systemd[1]: systemd-pcrextend.socket - TPM PCR Measurements was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[    8.395517] systemd[1]: systemd-pcrlock.socket - Make TPM PCR Policy was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[    8.401047] systemd[1]: Listening on systemd-udevd-control.socket - udev Control Socket.
[  OK  ] Listening on systemd-udevd-control.socket - udev Control Socket.
[    8.404556] systemd[1]: Listening on systemd-udevd-kernel.socket - udev Kernel Socket.
[  OK  ] Listening on systemd-udevd-kernel.socket - udev Kernel Socket.
[    8.424456] systemd[1]: Mounting dev-hugepages.mount - Huge Pages File System...
         Mounting dev-hugepages.mount - Huge Pages File System...
[    8.443210] systemd[1]: Mounting dev-mqueue.mount - POSIX Message Queue File System...
         Mounting dev-mqueue.mount - POSIX Message Queue File System...
[    8.463768] systemd[1]: Mounting proc-sys-fs-binfmt_misc.mount - /proc/sys/fs/binfmt_misc...
         Mounting proc-sys-fs-binfmt_misc.mount - /proc/sys/fs/binfmt_misc...
[    8.498459] systemd[1]: Mounting run-lock.mount - Legacy Locks Directory /run/lock...
         Mounting run-lock.mount - Legacy Locks Directory /run/lock...
[    8.541243] systemd[1]: Mounting sys-kernel-config.mount - /sys/kernel/config...
         Mounting sys-kernel-config.mount - /sys/kernel/config...
[    8.566370] systemd[1]: Mounting sys-kernel-debug.mount - /sys/kernel/debug...
         Mounting sys-kernel-debug.mount - /sys/kernel/debug...
[    8.587331] systemd[1]: Mounting sys-kernel-tracing.mount - Kernel Trace File System...
         Mounting sys-kernel-tracing.mount - Kernel Trace File System...
[    8.617415] systemd[1]: Mounting tmp.mount - Temporary Directory /tmp...
         Mounting tmp.mount - Temporary Directory /tmp...
[    8.620392] systemd[1]: kmod-static-nodes.service - Create List of Static Device Nodes was skipped because of an unmet condition check (ConditionFileNotEmpty=/lib/modules/7.1.0-gf0e6f20cb52b/modules.devname).
[    8.649776] systemd[1]: Starting modprobe@drm.service - Load Kernel Module drm...
         Starting modprobe@drm.service - Load Kernel Module drm...
[    8.669710] systemd[1]: Starting modprobe@efi_pstore.service - Load Kernel Module efi_pstore...
         Starting modprobe@efi_pstore.servi… - Load Kernel Module efi_pstore...
[    8.702137] systemd[1]: Starting modprobe@fuse.service - Load Kernel Module fuse...
         Starting modprobe@fuse.service - Load Kernel Module fuse...
[    8.706385] systemd[1]: systemd-hibernate-clear.service - Clear Stale Hibernate Storage Info was skipped because of an unmet condition check (ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67).
[    8.711609] systemd[1]: systemd-journald.service: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
[    8.714196] systemd[1]: systemd-journald.service: (This warning is only shown for the first unit using IP firewalling.)
[    8.740407] systemd[1]: Starting systemd-journald.service - Journal Service...
         Starting systemd-journald.service - Journal Service...
[    8.773683] systemd[1]: Starting systemd-modules-load.service - Load Kernel Modules...
         Starting systemd-modules-load.service - Load Kernel Modules...
[    8.778323] systemd[1]: systemd-pcrmachine.service - TPM PCR Machine ID Measurement was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[    8.820377] systemd[1]: Starting systemd-remount-fs.service - Remount Root and Kernel File Systems...
         Starting systemd-remount-fs.servic…unt Root and Kernel File Systems...
[    8.863032] systemd[1]: Starting systemd-tmpfiles-setup-dev-early.service - Create Static Device Nodes in /dev gracefully...
         Starting systemd-tmpfiles-setup-de… Device Nodes in /dev gracefully...
[    8.871801] systemd[1]: systemd-tpm2-setup-early.service - Early TPM SRK Setup was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[    8.910703] systemd[1]: Starting systemd-udev-load-credentials.service - Load udev Rules from Credentials...
         Starting systemd-udev-load-credent…Load udev Rules from Credentials...
[    8.950009] systemd-journald[96]: Collecting audit messages is disabled.
[    8.955912] EXT4-fs (sda): re-mounted 1ad6e232-a749-44cb-8d6a-dabbf94e2ee4 r/w.
[    8.976049] systemd[1]: Starting systemd-udev-trigger.service - Coldplug All udev Devices...
         Starting systemd-udev-trigger.service - Coldplug All udev Devices...
[    9.024298] systemd[1]: Mounted dev-hugepages.mount - Huge Pages File System.
[  OK  ] Mounted dev-hugepages.mount - Huge Pages File System.
[    9.034493] systemd[1]: Mounted dev-mqueue.mount - POSIX Message Queue File System.
[  OK  ] Mounted dev-mqueue.mount - POSIX Message Queue File System.
[    9.052258] systemd[1]: Mounted proc-sys-fs-binfmt_misc.mount - /proc/sys/fs/binfmt_misc.
[  OK  ] Mounted proc-sys-fs-binfmt_misc.mount - /proc/sys/fs/binfmt_misc.
[    9.065081] systemd[1]: Mounted run-lock.mount - Legacy Locks Directory /run/lock.
[  OK  ] Mounted run-lock.mount - Legacy Locks Directory /run/lock.
[    9.076504] systemd[1]: Mounted sys-kernel-config.mount - /sys/kernel/config.
[  OK  ] Mounted sys-kernel-config.mount - /sys/kernel/config.
[    9.084975] systemd[1]: Mounted sys-kernel-debug.mount - /sys/kernel/debug.
[  OK  ] Mounted sys-kernel-debug.mount - /sys/kernel/debug.
[    9.097520] systemd[1]: Mounted sys-kernel-tracing.mount - Kernel Trace File System.
[  OK  ] Mounted sys-kernel-tracing.mount - Kernel Trace File System.
[    9.106908] systemd[1]: Mounted tmp.mount - Temporary Directory /tmp.
[  OK  ] Mounted tmp.mount - Temporary Directory /tmp.
[    9.117927] systemd[1]: modprobe@drm.service: Deactivated successfully.
[    9.124090] systemd[1]: Finished modprobe@drm.service - Load Kernel Module drm.
[  OK  ] Finished modprobe@drm.service - Load Kernel Module drm.
[    9.133725] systemd[1]: modprobe@efi_pstore.service: Deactivated successfully.
[    9.140156] systemd[1]: Finished modprobe@efi_pstore.service - Load Kernel Module efi_pstore.
[  OK  ] Finished modprobe@efi_pstore.service - Load Kernel Module efi_pstore.
[    9.148791] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[    9.152131] systemd[1]: Finished modprobe@fuse.service - Load Kernel Module fuse.
[  OK  ] Finished modprobe@fuse.service - Load Kernel Module fuse.
[    9.166533] systemd[1]: Finished systemd-modules-load.service - Load Kernel Modules.
[  OK  ] Finished systemd-modules-load.service - Load Kernel Modules.
[    9.178390] systemd[1]: Finished systemd-remount-fs.service - Remount Root and Kernel File Systems.
[  OK  ] Finished systemd-remount-fs.servic…mount Root and Kernel File Systems.
[    9.191527] systemd[1]: Finished systemd-udev-load-credentials.service - Load udev Rules from Credentials.
[  OK  ] Finished systemd-udev-load-credent…- Load udev Rules from Credentials.
[    9.208782] systemd[1]: Finished systemd-tmpfiles-setup-dev-early.service - Create Static Device Nodes in /dev gracefully.
[  OK  ] Finished systemd-tmpfiles-setup-de…ic Device Nodes in /dev gracefully.
[    9.216800] systemd[1]: sys-fs-fuse-connections.mount - FUSE Control File System was skipped because of an unmet condition check (ConditionPathExists=/sys/fs/fuse/connections).
[    9.220438] systemd[1]: systemd-hwdb-update.service - Rebuild Hardware Database was skipped because of an unmet condition check (ConditionNeedsUpdate=/etc).
[    9.223534] systemd[1]: systemd-pstore.service - Platform Persistent Storage Archival was skipped because of an unmet condition check (ConditionDirectoryNotEmpty=/sys/fs/pstore).
[    9.262081] systemd[1]: Starting systemd-random-seed.service - Load/Save OS Random Seed...
         Starting systemd-random-seed.service - Load/Save OS Random Seed...
[    9.298381] systemd[1]: Starting systemd-sysctl.service - Apply Kernel Variables...
         Starting systemd-sysctl.service - Apply Kernel Variables...
[    9.303690] systemd[1]: systemd-sysusers.service - Create System Users was skipped because no trigger condition checks were met.
[    9.345123] systemd[1]: Starting systemd-tmpfiles-setup-dev.service - Create Static Device Nodes in /dev...
         Starting systemd-tmpfiles-setup-de…eate Static Device Nodes in /dev...
[    9.351759] systemd[1]: systemd-tpm2-setup.service - TPM SRK Setup was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
[    9.358415] systemd[1]: Started systemd-journald.service - Journal Service.
[  OK  ] Started systemd-journald.service - Journal Service.
[  OK  ] Finished systemd-random-seed.service - Load/Save OS Random Seed.
[  OK  ] Finished systemd-sysctl.service - Apply Kernel Variables.
         Starting systemd-journal-flush.ser…sh Journal to Persistent Storage...
[    9.628988] systemd-tmpfile (111) used greatest stack depth: 25224 bytes left
[  OK  ] Finished systemd-tmpfiles-setup-de…Create Static Device Nodes in /dev.
[  OK  ] Reached target local-fs-pre.target…Preparation for Local File Systems.
[  OK  ] Reached target local-fs.target - Local File Systems.
[  OK  ] Listening on systemd-sysext.socket… System Extension Image Management.
         Starting systemd-udevd.service - R…ager for Device Events and Files...
[    9.710111] systemd-journald[96]: Received client request to flush runtime journal.
[    9.743800] systemd-journald[96]: File /var/log/journal/b5db384d8695460380fbd9e772939801/system.journal corrupted or uncleanly shut down, renaming and replacing.
[  OK  ] Finished systemd-journal-flush.ser…lush Journal to Persistent Storage.
         Starting systemd-tmpfiles-setup.se…ate System Files and Directories...
[  OK  ] Started systemd-udevd.service - Ru…anager for Device Events and Files.
[  OK  ] Finished systemd-tmpfiles-setup.se…reate System Files and Directories.
[  OK  ] Found device dev-ttyS0.device - /dev/ttyS0.
[  OK  ] Finished systemd-udev-trigger.service - Coldplug All udev Devices.
[  OK  ] Reached target sysinit.target - System Initialization.
[  OK  ] Started apt-daily.timer - Daily apt download activities.
[  OK  ] Started apt-daily-upgrade.timer - …y apt upgrade and clean activities.
[  OK  ] Started dpkg-db-backup.timer - Daily dpkg database backup timer.
[   10.712642] systemd-sysctl (170) used greatest stack depth: 25136 bytes left
[  OK  ] Started e2scrub_all.timer - Period…Metadata Check for All Filesystems.
[  OK  ] Started fstrim.timer - Discard unused filesystem blocks once a week.
[  OK  ] Started logrotate.timer - Daily rotation of log files.
[  OK  ] Started systemd-tmpfiles-clean.tim…y Cleanup of Temporary Directories.
[  OK  ] Reached target timers.target - Timer Units.
[  OK  ] Listening on sshd-unix-local.socke…temd-ssh-generator, AF_UNIX Local).
[  OK  ] Listening on systemd-hostnamed.socket - Hostname Service Socket.
[  OK  ] Reached target sockets.target - Socket Units.
         Starting ifupdown-pre.service - He…synchronize boot up for ifupdown...
[  OK  ] Reached target basic.target - Basic System.
[  OK  ] Started cron.service - Regular background program processing daemon.
         Starting e2scrub_reap.service - Re…ne ext4 Metadata Check Snapshots...
         Starting getty-static.service - ge…bus and logind are not available...
         Starting dpkg-db-backup.service - …ily dpkg database backup service...
[   11.287269] audit: type=1107 audit(1782326800.871:3): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:kernel_t:s0 msg='avc:  denied  { start } for auid=n/a uid=0 gid=0 path="/usr/lib/systemd/system/getty@.service" cmdline="" function="bus_unit_method_start_generic" scontext=system_u:system_r:kernel_t:s0 tcontext=system_u:object_r:unlabeled_t:s0 tclass=service permissive=1 exe="/usr/lib/systemd/systemd" sauid=0 hostname=? addr=? terminal=?'
[   11.314512] audit: type=1107 audit(1782326800.893:4): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:kernel_t:s0 msg='avc:  denied  { status } for auid=n/a uid=0 gid=0 path="/usr/lib/systemd/system/getty@.service" cmdline="" function="reply_unit_path" scontext=system_u:system_r:kernel_t:s0 tcontext=system_u:object_r:unlabeled_t:s0 tclass=service permissive=1 exe="/usr/lib/systemd/systemd" sauid=0 hostname=? addr=? terminal=?'
[  OK  ] Finished ifupdown-pre.service - He…o synchronize boot up for ifupdown.
[  OK  ] Listening on systemd-rfkill.socket…ll Switch Status /dev/rfkill Watch.
         Starting networking.service - Raise network interfaces...
[  OK  ] Finished getty-static.service - ge… dbus and logind are not available.
[  OK  ] Finished e2scrub_reap.service - Re…line ext4 Metadata Check Snapshots.
[   11.792266] 8021q: adding VLAN 0 to HW filter on device eth0
[   11.792896] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[  OK  ] Finished dpkg-db-backup.service - Daily dpkg database backup service.
[*     ] Job networking.service/start running (5s / 5min 3s)
^[M[**    ] Job networking.service/start running (6s / 5min 3s)
^[M[***   ] Job networking.service/start running (7s / 5min 3s)
^[M[ ***  ] Job networking.service/start running (7s / 5min 3s)
^[M[  *** ] Job networking.service/start running (8s / 5min 3s)
^[M[   ***] Job networking.service/start running (8s / 5min 3s)
^[M[    **] Job networking.service/start running (9s / 5min 3s)
^[M[     *] Job networking.service/start running (10s / 5min 3s)
^[M         Starting e2scrub_all.service - Onl…tadata Check for All Filesystems...
[  OK  ] Finished e2scrub_all.service - Onl…Metadata Check for All Filesystems.
[  OK  ] Finished networking.service - Raise network interfaces.
[  OK  ] Reached target network.target - Network.
         Starting ssh.service - OpenBSD Secure Shell server...
         Starting systemd-user-sessions.service - Permit User Sessions...
[  OK  ] Finished systemd-user-sessions.service - Permit User Sessions.
[  OK  ] Started getty@tty1.service - Getty on tty1.
[  OK  ] Started getty@tty2.service - Getty on tty2.
[  OK  ] Started getty@tty3.service - Getty on tty3.
[  OK  ] Started getty@tty4.service - Getty on tty4.
[  OK  ] Started getty@tty5.service - Getty on tty5.
[  OK  ] Started getty@tty6.service - Getty on tty6.
[  OK  ] Started serial-getty@ttyS0.service - Serial Getty on ttyS0.
[  OK  ] Reached target getty.target - Login Prompts.
[  OK  ] Started ssh.service - OpenBSD Secure Shell server.
[  OK  ] Reached target multi-user.target - Multi-User System.
[  OK  ] Reached target graphical.target - Graphical Interface.
^[[!p^[]104\a^[[!p^[]104\a
Debian GNU/Linux 13 syzkaller ttyS0

syzkaller login: root
root
Linux syzkaller 7.1.0-gf0e6f20cb52b #1 SMP PREEMPT_DYNAMIC Wed Jun 24 21:45:00 MSK 2026 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
A valid context for root could not be obtained.
root@syzkaller:~# mount -t 9p -o trans=virtio,version=9p2000.L hostshare /mnt && echo MNT_OK
mount -t 9p -o trans=virtio,version=9p2000.L hostshare /mnt &&  echo MNT_OK/mnt/repro_bugA & echo REPRO_RUNNING

MNT_OK
root@syzkaller:~# /mnt/repro_bugA & echo REPRO_RUNNING
[1] 374
REPRO_RUNNING
root@syzkaller:~# [   21.292790] audit: type=1400 audit(1782326810.881:5): avc:  denied  { execmem } for  pid=374 comm="repro_bugA" scontext=system_u:system_r:kernel_t:s0 tcontext=system_u:system_r:kernel_t:s0 tclass=process permissive=1
[   21.545957] bridge0: port 1(bridge_slave_0) entered blocking state
[   21.546919] bridge0: port 1(bridge_slave_0) entered disabled state
[   21.547940] bridge_slave_0: entered allmulticast mode
[   21.549297] bridge_slave_0: entered promiscuous mode
[   21.554046] bridge0: port 2(bridge_slave_1) entered blocking state
[   21.554794] bridge0: port 2(bridge_slave_1) entered disabled state
[   21.555471] bridge_slave_1: entered allmulticast mode
[   21.556370] bridge_slave_1: entered promiscuous mode
[   21.572361] bridge0: port 1(bridge_slave_0) entered blocking state
[   21.573061] bridge0: port 1(bridge_slave_0) entered disabled state
[   21.573874] bridge_slave_0: entered allmulticast mode
[   21.574784] bridge_slave_0: entered promiscuous mode
[   21.578532] bridge0: port 1(bridge_slave_0) entered blocking state
[   21.579424] bridge0: port 1(bridge_slave_0) entered disabled state
[   21.580227] bridge_slave_0: entered allmulticast mode
[   21.581161] bridge_slave_0: entered promiscuous mode
[   21.585049] bridge0: port 2(bridge_slave_1) entered blocking state
[   21.585790] bridge0: port 2(bridge_slave_1) entered disabled state
[   21.586539] bridge_slave_1: entered allmulticast mode
[   21.587479] bridge_slave_1: entered promiscuous mode
[   21.591030] bridge0: port 2(bridge_slave_1) entered blocking state
[   21.591850] bridge0: port 2(bridge_slave_1) entered disabled state
[   21.592606] bridge_slave_1: entered allmulticast mode
[   21.593533] bridge_slave_1: entered promiscuous mode
[   21.594370] bridge0: port 1(bridge_slave_0) entered blocking state
[   21.595048] bridge0: port 1(bridge_slave_0) entered disabled state
[   21.595759] bridge_slave_0: entered allmulticast mode
[   21.596657] bridge_slave_0: entered promiscuous mode
[   21.613295] bridge0: port 2(bridge_slave_1) entered blocking state
[   21.613936] bridge0: port 2(bridge_slave_1) entered disabled state
[   21.614605] bridge_slave_1: entered allmulticast mode
[   21.616197] bridge_slave_1: entered promiscuous mode
[   21.933913] bridge0: port 2(bridge_slave_1) entered blocking state
[   21.934888] bridge0: port 2(bridge_slave_1) entered forwarding state
[   21.935911] bridge0: port 1(bridge_slave_0) entered blocking state
[   21.936777] bridge0: port 1(bridge_slave_0) entered forwarding state
[   21.941843] bridge0: port 2(bridge_slave_1) entered blocking state
[   21.942634] bridge0: port 2(bridge_slave_1) entered forwarding state
[   21.943529] bridge0: port 1(bridge_slave_0) entered blocking state
[   21.944410] bridge0: port 1(bridge_slave_0) entered forwarding state
[   21.969865] bridge0: port 2(bridge_slave_1) entered blocking state
[   21.970632] bridge0: port 2(bridge_slave_1) entered forwarding state
[   21.971531] bridge0: port 1(bridge_slave_0) entered blocking state
[   21.972376] bridge0: port 1(bridge_slave_0) entered forwarding state
[   21.981138] bridge0: port 2(bridge_slave_1) entered blocking state
[   21.981823] bridge0: port 2(bridge_slave_1) entered forwarding state
[   21.982548] bridge0: port 1(bridge_slave_0) entered blocking state
[   21.983198] bridge0: port 1(bridge_slave_0) entered forwarding state
[   21.988743] bridge0: port 1(bridge_slave_0) entered disabled state
[   21.989732] bridge0: port 2(bridge_slave_1) entered disabled state
[   21.990521] bridge0: port 1(bridge_slave_0) entered disabled state
[   21.991522] bridge0: port 1(bridge_slave_0) entered disabled state
[   21.992302] bridge0: port 2(bridge_slave_1) entered disabled state
[   21.993259] bridge0: port 2(bridge_slave_1) entered disabled state
[   21.994134] bridge0: port 1(bridge_slave_0) entered disabled state
[   21.995053] bridge0: port 2(bridge_slave_1) entered disabled state
[   22.003498] bridge0: port 1(bridge_slave_0) entered blocking state
[   22.004335] bridge0: port 1(bridge_slave_0) entered forwarding state
[   22.009290] bridge0: port 2(bridge_slave_1) entered blocking state
[   22.010044] bridge0: port 2(bridge_slave_1) entered forwarding state
[   22.018272] bridge0: port 1(bridge_slave_0) entered blocking state
[   22.019029] bridge0: port 1(bridge_slave_0) entered forwarding state
[   22.020211] bridge0: port 2(bridge_slave_1) entered blocking state
[   22.021027] bridge0: port 2(bridge_slave_1) entered forwarding state
[   22.047915] bridge0: port 1(bridge_slave_0) entered blocking state
[   22.048589] bridge0: port 1(bridge_slave_0) entered forwarding state
[   22.051571] bridge0: port 2(bridge_slave_1) entered blocking state
[   22.052232] bridge0: port 2(bridge_slave_1) entered forwarding state
[   22.058072] bridge0: port 1(bridge_slave_0) entered blocking state
[   22.058890] bridge0: port 1(bridge_slave_0) entered forwarding state
[   22.064430] bridge0: port 2(bridge_slave_1) entered blocking state
[   22.065141] bridge0: port 2(bridge_slave_1) entered forwarding state
[   22.108107] veth0_vlan: entered promiscuous mode
[   22.122278] veth0_vlan: entered promiscuous mode
[   22.150859] veth0_vlan: entered promiscuous mode
[   22.155618] veth0_vlan: entered promiscuous mode
executing program
[   22.238473] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000016: 0000 [#1] SMP KASAN NOPTI
[   22.239839] KASAN: null-ptr-deref in range [0x00000000000000b0-0x00000000000000b7]
[   22.240790] CPU: 0 UID: 0 PID: 482 Comm: repro_bugA Not tainted 7.1.0-gf0e6f20cb52b #1 PREEMPT(full) 
[   22.241797] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014
[   22.242933] RIP: 0010:nft_fib6_eval+0x433/0x1060
[   22.243577] Code: d3 20 27 fd 0f b6 44 24 30 3c 05 74 4c e8 15 2c 27 fd 49 8d bf b0 00 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 04 02 84 c0 74 08 3c 03 0f 8e ad 08 00 00 41 8b 87 b0 00 00
[   22.245385] RSP: 0018:ffff8880099ae470 EFLAGS: 00010212
[   22.245920] RAX: dffffc0000000000 RBX: ffff8880099ae930 RCX: ffffffff8dc9cebb
[   22.246626] RDX: 0000000000000016 RSI: 0000000000000005 RDI: 00000000000000b0
[   22.247335] RBP: ffff88800e0c5780 R08: ffff8880099ae8d0 R09: 000000000000003c
[   22.248036] R10: 0000000000000000 R11: 000000000003b819 R12: ffff88800e79f458
[   22.248748] R13: ffff8880099aeb68 R14: ffff88800e79f460 R15: 0000000000000000
[   22.249455] FS:  00007fb3a83926c0(0000) GS:ffff8880dc124000(0000) knlGS:0000000000000000
[   22.250252] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   22.250855] CR2: 0000200000003100 CR3: 0000000003a3f000 CR4: 0000000000750ef0
[   22.251578] PKRU: 55555554
[   22.251866] Call Trace:
[   22.252124]  <TASK>
[   22.252373]  ? __pfx_nft_fib6_eval+0x10/0x10
[   22.252829]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.253360]  ? nft_inner_eval+0x40a/0xa90
[   22.253809]  nft_fib_netdev_eval+0x146/0x280
[   22.254285]  ? __pfx_nft_fib_netdev_eval+0x10/0x10
[   22.254887]  nft_do_chain+0x28b/0x1740
[   22.255411]  ? __pfx_nft_do_chain+0x10/0x10
[   22.255968]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.256592]  ? __sanitizer_cov_trace_switch+0x54/0x90
[   22.257198]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.257709]  ? ipv6_find_hdr+0x45f/0xc60
[   22.258127]  ? __pfx_ipv6_find_hdr+0x10/0x10
[   22.258585]  ? unwind_next_frame+0x362/0x2560
[   22.259051]  ? arch_stack_walk+0x62/0xf0
[   22.259489]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.259991]  ? __is_insn_slot_addr+0xbd/0x100
[   22.260470]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.260968]  ? kernel_text_address+0x5b/0xc0
[   22.261442]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.261944]  ? __kernel_text_address+0xd/0x40
[   22.262410]  nft_do_chain_netdev+0x76a/0xf40
[   22.262918]  ? __pfx_nft_do_chain_netdev+0x10/0x10
[   22.263468]  ? _raw_spin_lock_irqsave+0x85/0xe0
[   22.264037]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.264623]  ? stack_trace_save+0x8e/0xc0
[   22.265063]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.265579]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.266085]  ? kasan_save_stack+0x34/0x50
[   22.266540]  ? kasan_save_stack+0x24/0x50
[   22.267094]  ? kasan_save_track+0x14/0x30
[   22.267617]  ? __kasan_kmalloc+0x7f/0x90
[   22.268101]  ? __kmalloc_noprof+0x1d5/0x510
[   22.268634]  ? ___neigh_create+0x130/0x2450
[   22.269195]  ? ip6_finish_output2+0x9f0/0x17c0
[   22.270006]  nf_hook_slow+0xcc/0x220
[   22.270511]  ? ip6_input+0xcd/0x200
[   22.270987]  __dev_queue_xmit+0x1f12/0x3440
[   22.271573]  ? arch_stack_walk+0x62/0xf0
[   22.272182]  ? __pfx___rmqueue_pcplist+0x10/0x10
[   22.273090]  ? __pfx__raw_spin_trylock+0x10/0x10
[   22.273724]  ? __pfx___dev_queue_xmit+0x10/0x10
[   22.274314]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.274869]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.275392]  ? kasan_unpoison+0x27/0x60
[   22.275824]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.276334]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.276835]  ? get_page_from_freelist+0x1129/0x3b10
[   22.277360]  ? __pfx__raw_spin_lock_irqsave+0x10/0x10
[   22.277879]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.278381]  ? kasan_save_track+0x14/0x30
[   22.278805]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.279300]  ? _raw_spin_lock_bh+0x83/0xe0
[   22.279735]  ? __pfx__raw_spin_lock_bh+0x10/0x10
[   22.280212]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.280726]  ? _raw_write_lock_bh+0x83/0xe0
[   22.281170]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.281686]  ? skb_push+0x9b/0xf0
[   22.282115]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.282697]  ? eth_header+0x16f/0x200
[   22.283134]  neigh_resolve_output+0x44c/0x780
[   22.283620]  ip6_finish_output2+0x981/0x17c0
[   22.284086]  ? __pfx_ip6_finish_output2+0x10/0x10
[   22.284592]  ? __pfx_fib6_table_lookup+0x10/0x10
[   22.285174]  ? tcp_v6_rcv+0x124c/0x3760
[   22.285659]  ? ip6_protocol_deliver_rcu+0x250/0x10a0
[   22.286237]  ? ip6_input_finish+0x1b8/0x3c0
[   22.286699]  ? __sanitizer_cov_trace_switch+0x54/0x90
[   22.287261]  __ip6_finish_output+0x446/0x7b0
[   22.287740]  ip6_output+0x23b/0x480
[   22.288119]  ? __pfx_ip6_output+0x10/0x10
[   22.288551]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.289053]  ? __pfx_ip6_finish_output+0x10/0x10
[   22.289561]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.290062]  ? nf_hook_slow+0x13e/0x220
[   22.290494]  ? __pfx_ip6_output+0x10/0x10
[   22.291044]  ip6_xmit+0xc9e/0x1a50
[   22.291561]  ? __pfx_ip6_xmit+0x10/0x10
[   22.292113]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.292754]  ? inet6_sk_rebuild_header+0x493/0xa60
[   22.293265]  ? __pfx_dst_output+0x10/0x10
[   22.293707]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.294203]  ? xfrm_lookup_route+0x69/0x1b0
[   22.294668]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.295171]  tcp_v6_send_response+0xe5d/0x1cb0
[   22.295644]  ? __pfx_tcp_v6_send_response+0x10/0x10
[   22.296154]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.296687]  ? kasan_save_stack+0x34/0x50
[   22.297113]  ? __netif_receive_skb+0x1d/0x160
[   22.297585]  ? netif_receive_skb+0x8f/0x480
[   22.298032]  ? tun_get_user+0x2b96/0x3b00
[   22.298529]  ? tun_chr_write_iter+0x172/0x2b0
[   22.299159]  ? vfs_write+0xa5c/0xd30
[   22.299591]  ? ksys_write+0x124/0x240
[   22.300007]  ? do_syscall_64+0x10c/0x5b0
[   22.300462]  ? entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   22.301078]  tcp_v6_send_reset+0x508/0xda0
[   22.301628]  ? __pfx_tcp_v6_send_reset+0x10/0x10
[   22.302380]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.303041]  ? inet6_lookup_listener+0x17c/0x350
[   22.303578]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.304110]  ? __xfrm_policy_check2.constprop.0+0x353/0x5d0
[   22.304786]  tcp_v6_rcv+0x124c/0x3760
[   22.305242]  ? __pfx_tcp_v6_rcv+0x10/0x10
[   22.305700]  ? kasan_save_stack+0x34/0x50
[   22.306122]  ? kasan_save_stack+0x24/0x50
[   22.306551]  ? kasan_save_track+0x14/0x30
[   22.306982]  ? __build_skb+0x40/0xa0
[   22.307383]  ? build_skb+0x1e/0x210
[   22.307764]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.308279]  ? raw6_local_deliver+0x314/0x720
[   22.308803]  ? ksys_write+0x124/0x240
[   22.309289]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.309964]  ? __sanitizer_cov_trace_switch+0x54/0x90
[   22.310531]  ? __pfx_tcp_v6_rcv+0x10/0x10
[   22.310986]  ip6_protocol_deliver_rcu+0x315/0x10a0
[   22.311615]  ip6_input_finish+0x1b8/0x3c0
[   22.312170]  ip6_input+0xcd/0x200
[   22.312553]  ? __pfx_ip6_input+0x10/0x10
[   22.312980]  ? sock_wfree+0x11c/0x5a0
[   22.313395]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.313895]  ? ip6_rcv_finish_core.constprop.0+0xd9/0xc70
[   22.314463]  ? __pfx_ip6_input+0x10/0x10
[   22.314889]  ipv6_rcv+0x244/0x2c0
[   22.315256]  ? __pfx_ipv6_rcv+0x10/0x10
[   22.315680]  ? __build_skb+0x83/0xa0
[   22.316069]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.316584]  ? tun_build_skb+0x9df/0x1140
[   22.317010]  ? __pfx_ipv6_rcv+0x10/0x10
[   22.317431]  __netif_receive_skb_one_core+0x12d/0x1e0
[   22.318050]  ? __pfx___netif_receive_skb_one_core+0x10/0x10
[   22.318774]  ? __pfx_tun_build_skb+0x10/0x10
[   22.319288]  ? __pfx_get_page_from_freelist+0x10/0x10
[   22.319816]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.320318]  ? __virtio_net_hdr_to_skb+0x72d/0x13c0
[   22.320917]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.321566]  __netif_receive_skb+0x1d/0x160
[   22.322122]  netif_receive_skb+0x8f/0x480
[   22.322561]  ? __pfx_netif_receive_skb+0x10/0x10
[   22.323042]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.323569]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.324074]  tun_get_user+0x2b96/0x3b00
[   22.324533]  ? __pfx___alloc_frozen_pages_noprof+0x10/0x10
[   22.325143]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.325663]  ? __pfx_tun_get_user+0x10/0x10
[   22.326107]  ? __sanitizer_cov_trace_switch+0x54/0x90
[   22.326658]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.327164]  ? __folio_batch_add_and_move+0x188/0x220
[   22.327737]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.328247]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.328816]  ? folio_add_lru_vma+0x18b/0x200
[   22.329282]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.329821]  ? folio_add_new_anon_rmap+0x281/0x620
[   22.330407]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.330915]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.331420]  ? selinux_file_permission+0x11c/0x600
[   22.331960]  ? tun_chr_write_iter+0x172/0x2b0
[   22.332458]  tun_chr_write_iter+0x172/0x2b0
[   22.332951]  vfs_write+0xa5c/0xd30
[   22.333365]  ? __pfx_tun_chr_write_iter+0x10/0x10
[   22.333864]  ? __pfx_vfs_write+0x10/0x10
[   22.334289]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.334812]  ? fdget_pos+0x1ff/0x580
[   22.335224]  ksys_write+0x124/0x240
[   22.335649]  ? __pfx_ksys_write+0x10/0x10
[   22.336099]  ? fpregs_assert_state_consistent+0x10a/0x150
[   22.336689]  ? srso_alias_return_thunk+0x5/0xfbef5
[   22.337184]  ? irqentry_exit+0x43/0x790
[   22.337606]  do_syscall_64+0x10c/0x5b0
[   22.338020]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   22.338542] RIP: 0033:0x7fb3a84309ee
[   22.338942] Code: 08 0f 85 f5 4b ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 80 00 00 00 00 48 83 ec 08
[   22.340825] RSP: 002b:00007fb3a8391df8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
[   22.341676] RAX: ffffffffffffffda RBX: 00007fb3a83926c0 RCX: 00007fb3a84309ee
[   22.342412] RDX: 000000000000004a RSI: 0000200000003100 RDI: 00000000000000c8
[   22.343123] RBP: 0000560e4cd7a82c R08: 0000000000000000 R09: 0000000000000000
[   22.343874] R10: 0000000000000000 R11: 0000000000000246 R12: 0000560e4cd9002c
[   22.344611] R13: 0000560e4cd90028 R14: 0000200000003136 R15: 0000200000003126
[   22.345339]  </TASK>
[   22.345577] Modules linked in:
[   22.345962] ---[ end trace 0000000000000000 ]---
[   22.346469] RIP: 0010:nft_fib6_eval+0x433/0x1060
[   22.346965] Code: d3 20 27 fd 0f b6 44 24 30 3c 05 74 4c e8 15 2c 27 fd 49 8d bf b0 00 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 04 02 84 c0 74 08 3c 03 0f 8e ad 08 00 00 41 8b 87 b0 00 00
[   22.348809] RSP: 0018:ffff8880099ae470 EFLAGS: 00010212
[   22.349367] RAX: dffffc0000000000 RBX: ffff8880099ae930 RCX: ffffffff8dc9cebb
[   22.350083] RDX: 0000000000000016 RSI: 0000000000000005 RDI: 00000000000000b0
[   22.350813] RBP: ffff88800e0c5780 R08: ffff8880099ae8d0 R09: 000000000000003c
[   22.351558] R10: 0000000000000000 R11: 000000000003b819 R12: ffff88800e79f458
[   22.352292] R13: ffff8880099aeb68 R14: ffff88800e79f460 R15: 0000000000000000
[   22.353026] FS:  00007fb3a83926c0(0000) GS:ffff8880dc124000(0000) knlGS:0000000000000000
[   22.353911] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   22.354542] CR2: 0000200000003100 CR3: 0000000003a3f000 CR4: 0000000000750ef0
executing progra[   22.355265] PKRU: 55555554
m[   2
2.355732] Kernel panic - not syncing: Fatal exception in interrupt
[   22.356579] Kernel Offset: 0x9800000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[   22.357881] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---

[-- Attachment #5: config --]
[-- Type: application/octet-stream, Size: 152111 bytes --]

#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 7.1.0 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=110400
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=23800
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=23800
CONFIG_LLD_VERSION=0
CONFIG_RUSTC_VERSION=109300
CONFIG_RUSTC_LLVM_VERSION=210108
CONFIG_RUSTC_LLVM_MAJOR_VERSION=21
CONFIG_CC_CAN_LINK=y
CONFIG_GCC_ASM_GOTO_OUTPUT_BROKEN=y
CONFIG_TOOLS_SUPPORT_RELR=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y
CONFIG_RUSTC_HAS_SPAN_FILE=y
CONFIG_RUSTC_HAS_UNNECESSARY_TRANSMUTES=y
CONFIG_RUSTC_HAS_FILE_WITH_NUL=y
CONFIG_RUSTC_HAS_FILE_AS_C_STR=y
CONFIG_PAHOLE_VERSION=0
CONFIG_CONSTRUCTORS=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y

#
# General setup
#
CONFIG_INIT_ENV_ARG_LIMIT=32
# CONFIG_COMPILE_TEST is not set
CONFIG_WERROR=y
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_BUILD_SALT=""
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_HAVE_KERNEL_ZSTD=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_ZSTD is not set
CONFIG_DEFAULT_INIT=""
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
# CONFIG_WATCH_QUEUE is not set
CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_AUDIT=y
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_AUDITSYSCALL=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_GENERIC_IRQ_MIGRATION=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y
CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y
CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
# CONFIG_GENERIC_IRQ_DEBUGFS is not set
# end of IRQ subsystem

CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_INIT=y
CONFIG_ARCH_WANTS_CLOCKSOURCE_READ_INLINE=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST_IDLE=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CLOCKEVENTS_COUPLED=y
CONFIG_GENERIC_CLOCKEVENTS_COUPLED_INLINE=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_HRTIMER_REARM_DEFERRED=y
CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
CONFIG_CONTEXT_TRACKING=y
CONFIG_CONTEXT_TRACKING_IDLE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_POSIX_AUX_CLOCKS is not set
# end of Timers subsystem

CONFIG_BPF=y
CONFIG_HAVE_EBPF_JIT=y
CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y

#
# BPF subsystem
#
# CONFIG_BPF_SYSCALL is not set
# CONFIG_BPF_JIT is not set
# end of BPF subsystem

CONFIG_PREEMPT_BUILD=y
CONFIG_ARCH_HAS_PREEMPT_LAZY=y
CONFIG_PREEMPT=y
# CONFIG_PREEMPT_LAZY is not set
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
CONFIG_PREEMPT_DYNAMIC=y
# CONFIG_SCHED_CORE is not set

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
# CONFIG_PSI is not set
# end of CPU/Task time and stats accounting

CONFIG_CPU_ISOLATION=y

#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_EXPERT is not set
CONFIG_TREE_SRCU=y
CONFIG_TASKS_RCU_GENERIC=y
CONFIG_NEED_TASKS_RCU=y
CONFIG_TASKS_RCU=y
CONFIG_TASKS_TRACE_RCU=y
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_NEED_SEGCBLIST=y
# end of RCU Subsystem

# CONFIG_IKCONFIG is not set
# CONFIG_IKHEADERS is not set
CONFIG_LOG_BUF_SHIFT=18
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
# CONFIG_PRINTK_INDEX is not set
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y

#
# Scheduler features
#
# CONFIG_UCLAMP_TASK is not set
# end of Scheduler features

CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
CONFIG_CC_HAS_INT128=y
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
CONFIG_CC_MS_EXTENSIONS="-fms-extensions"
CONFIG_GCC10_NO_ARRAY_BOUNDS=y
CONFIG_CC_NO_ARRAY_BOUNDS=y
CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
CONFIG_CC_NO_STRINGOP_OVERFLOW=y
CONFIG_ARCH_SUPPORTS_INT128=y
# CONFIG_NUMA_BALANCING is not set
CONFIG_SCHED_CACHE=y
CONFIG_SLAB_OBJ_EXT=y
CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
# CONFIG_CGROUP_FAVOR_DYNMODS is not set
CONFIG_MEMCG=y
# CONFIG_MEMCG_V1 is not set
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_WRITEBACK=y
CONFIG_CGROUP_SCHED=y
CONFIG_GROUP_SCHED_WEIGHT=y
CONFIG_FAIR_GROUP_SCHED=y
# CONFIG_CFS_BANDWIDTH is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_SCHED_MM_CID=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_RDMA=y
# CONFIG_CGROUP_DMEM is not set
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_HUGETLB=y
CONFIG_CPUSETS=y
# CONFIG_CPUSETS_V1 is not set
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_MISC=y
CONFIG_CGROUP_DEBUG=y
CONFIG_SOCK_CGROUP_DATA=y
CONFIG_NAMESPACES=y
CONFIG_UTS_NS=y
CONFIG_TIME_NS=y
CONFIG_TIME_NS_VDSO=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
# CONFIG_CHECKPOINT_RESTORE is not set
# CONFIG_SCHED_AUTOGROUP is not set
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y
CONFIG_RD_LZ4=y
CONFIG_RD_ZSTD=y
# CONFIG_BOOT_CONFIG is not set
CONFIG_CMDLINE_LOG_WRAP_IDEAL_LEN=1021
CONFIG_INITRAMFS_PRESERVE_MTIME=y
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_LD_ORPHAN_WARN=y
CONFIG_LD_ORPHAN_WARN_LEVEL="error"
CONFIG_SYSCTL=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
# CONFIG_SYSFS_SYSCALL is not set
CONFIG_HAVE_PCSPKR_PLATFORM=y
# CONFIG_EXPERT is not set
CONFIG_UID16=y
CONFIG_MULTIUSER=y
CONFIG_SGETMASK_SYSCALL=y
CONFIG_FHANDLE=y
CONFIG_POSIX_TIMERS=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
CONFIG_FUTEX=y
CONFIG_FUTEX_PI=y
CONFIG_FUTEX_PRIVATE_HASH=y
CONFIG_FUTEX_MPOL=y
CONFIG_HAVE_FUTEX_ROBUST_UNLOCK=y
CONFIG_FUTEX_ROBUST_UNLOCK=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_IO_URING=y
CONFIG_ADVISE_SYSCALLS=y
CONFIG_MEMBARRIER=y
CONFIG_KCMP=y
CONFIG_RSEQ=y
CONFIG_RSEQ_SLICE_EXTENSION=y
CONFIG_CACHESTAT_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_SELFTEST is not set
CONFIG_KALLSYMS_ALL=y
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
CONFIG_ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS=y
CONFIG_HAVE_PERF_EVENTS=y

#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
# end of Kernel Performance Events And Counters

CONFIG_SYSTEM_DATA_VERIFICATION=y
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y

#
# Kexec and crash features
#
CONFIG_CRASH_RESERVE=y
CONFIG_VMCORE_INFO=y
CONFIG_KEXEC_CORE=y
CONFIG_KEXEC=y
# CONFIG_KEXEC_FILE is not set
# CONFIG_KEXEC_JUMP is not set
CONFIG_CRASH_DUMP=y
CONFIG_CRASH_HOTPLUG=y
CONFIG_CRASH_MAX_MEMORY_RANGES=8192
# end of Kexec and crash features

#
# Live Update and Kexec HandOver
#
# CONFIG_KEXEC_HANDOVER is not set
# end of Live Update and Kexec HandOver
# end of General setup

CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_MMU=y
CONFIG_ARCH_MMAP_RND_BITS_MIN=28
CONFIG_ARCH_MMAP_RND_BITS_MAX=32
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_CSUM=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_AUDIT_ARCH=y
CONFIG_KASAN_SHADOW_OFFSET=0xdffffc0000000000
CONFIG_HAVE_INTEL_TXT=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_PGTABLE_LEVELS=5

#
# Processor type and features
#
CONFIG_SMP=y
CONFIG_X86_X2APIC=y
CONFIG_X86_MPPARSE=y
# CONFIG_X86_CPU_RESCTRL is not set
# CONFIG_X86_FRED is not set
CONFIG_X86_EXTENDED_PLATFORM=y
# CONFIG_X86_NUMACHIP is not set
# CONFIG_X86_VSMP is not set
# CONFIG_X86_UV is not set
# CONFIG_X86_INTEL_MID is not set
# CONFIG_X86_GOLDFISH is not set
# CONFIG_X86_INTEL_LPSS is not set
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
CONFIG_IOSF_MBI=y
# CONFIG_IOSF_MBI_DEBUG is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_SPINLOCKS is not set
CONFIG_X86_HV_CALLBACK_VECTOR=y
# CONFIG_XEN is not set
CONFIG_KVM_GUEST=y
CONFIG_ARCH_CPUIDLE_HALTPOLL=y
# CONFIG_PVH is not set
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_PARAVIRT_CLOCK=y
# CONFIG_JAILHOUSE_GUEST is not set
# CONFIG_ACRN_GUEST is not set
# CONFIG_BHYVE_GUEST is not set
# CONFIG_INTEL_TDX_GUEST is not set
CONFIG_CC_HAS_MARCH_NATIVE=y
# CONFIG_X86_NATIVE_CPU is not set
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_TSC=y
CONFIG_X86_HAVE_PAE=y
CONFIG_X86_CX8=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=64
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_IA32_FEAT_CTL=y
CONFIG_X86_VMX_FEATURE_NAMES=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_HYGON=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_CPU_SUP_ZHAOXIN=y
CONFIG_BROADCAST_TLB_FLUSH=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
# CONFIG_GART_IOMMU is not set
# CONFIG_MAXSMP is not set
CONFIG_NR_CPUS_RANGE_BEGIN=2
CONFIG_NR_CPUS_RANGE_END=512
CONFIG_NR_CPUS_DEFAULT=64
CONFIG_NR_CPUS=64
CONFIG_SCHED_MC_PRIO=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_ACPI_MADT_WAKEUP=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
CONFIG_X86_MCE=y
# CONFIG_X86_MCELOG_LEGACY is not set
CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
# CONFIG_X86_MCE_INJECT is not set

#
# Performance monitoring
#
CONFIG_PERF_EVENTS_INTEL_UNCORE=y
CONFIG_PERF_EVENTS_INTEL_RAPL=y
CONFIG_PERF_EVENTS_INTEL_CSTATE=y
# CONFIG_PERF_EVENTS_AMD_POWER is not set
CONFIG_PERF_EVENTS_AMD_UNCORE=y
# CONFIG_PERF_EVENTS_AMD_BRS is not set
# end of Performance monitoring

CONFIG_X86_16BIT=y
CONFIG_X86_ESPFIX64=y
CONFIG_X86_VSYSCALL_EMULATION=y
CONFIG_X86_IOPL_IOPERM=y
CONFIG_MICROCODE=y
# CONFIG_MICROCODE_LATE_LOADING is not set
# CONFIG_MICROCODE_DBG is not set
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
CONFIG_X86_DIRECT_GBPAGES=y
# CONFIG_X86_CPA_STATISTICS is not set
# CONFIG_AMD_MEM_ENCRYPT is not set
CONFIG_NUMA=y
CONFIG_AMD_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_NODES_SHIFT=6
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_ARCH_PROC_KCORE_TEXT=y
CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
# CONFIG_X86_PMEM_LEGACY is not set
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
CONFIG_MTRR=y
# CONFIG_MTRR_SANITIZER is not set
CONFIG_X86_PAT=y
CONFIG_X86_UMIP=y
CONFIG_CC_HAS_IBT=y
CONFIG_X86_CET=y
CONFIG_X86_KERNEL_IBT=y
CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
CONFIG_ARCH_PKEY_BITS=4
CONFIG_X86_INTEL_TSX_MODE_OFF=y
# CONFIG_X86_INTEL_TSX_MODE_ON is not set
# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
# CONFIG_X86_SGX is not set
# CONFIG_X86_USER_SHADOW_STACK is not set
CONFIG_EFI=y
CONFIG_EFI_STUB=y
CONFIG_EFI_HANDOVER_PROTOCOL=y
CONFIG_EFI_MIXED=y
CONFIG_EFI_RUNTIME_MAP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_SCHED_HRTICK=y
CONFIG_ARCH_SUPPORTS_KEXEC=y
CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y
CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y
CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y
CONFIG_ARCH_SUPPORTS_KEXEC_SIG_FORCE=y
CONFIG_ARCH_SUPPORTS_KEXEC_BZIMAGE_VERIFY_SIG=y
CONFIG_ARCH_SUPPORTS_KEXEC_JUMP=y
CONFIG_ARCH_SUPPORTS_KEXEC_HANDOVER=y
CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y
CONFIG_ARCH_DEFAULT_CRASH_DUMP=y
CONFIG_ARCH_SUPPORTS_CRASH_HOTPLUG=y
CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION=y
CONFIG_PHYSICAL_START=0x1000000
CONFIG_RELOCATABLE=y
CONFIG_RANDOMIZE_BASE=y
CONFIG_X86_NEED_RELOCS=y
CONFIG_PHYSICAL_ALIGN=0x200000
CONFIG_RANDOMIZE_MEMORY=y
CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0x0
CONFIG_HOTPLUG_CPU=y
# CONFIG_COMPAT_VDSO is not set
CONFIG_LEGACY_VSYSCALL_XONLY=y
# CONFIG_LEGACY_VSYSCALL_NONE is not set
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="net.ifnames=0"
# CONFIG_CMDLINE_OVERRIDE is not set
CONFIG_MODIFY_LDT_SYSCALL=y
# CONFIG_STRICT_SIGALTSTACK_SIZE is not set
CONFIG_HAVE_LIVEPATCH=y
CONFIG_HAVE_KLP_BUILD=y
CONFIG_X86_BUS_LOCK_DETECT=y
# end of Processor type and features

CONFIG_CC_HAS_NAMED_AS=y
CONFIG_CC_HAS_SLS=y
CONFIG_CC_HAS_RETURN_THUNK=y
CONFIG_CC_HAS_ENTRY_PADDING=y
CONFIG_FUNCTION_PADDING_CFI=11
CONFIG_FUNCTION_PADDING_BYTES=16
CONFIG_CALL_PADDING=y
CONFIG_HAVE_CALL_THUNKS=y
CONFIG_CALL_THUNKS=y
CONFIG_CPU_MITIGATIONS=y
CONFIG_MITIGATION_PAGE_TABLE_ISOLATION=y
CONFIG_MITIGATION_RETPOLINE=y
CONFIG_MITIGATION_RETHUNK=y
CONFIG_MITIGATION_UNRET_ENTRY=y
CONFIG_MITIGATION_CALL_DEPTH_TRACKING=y
# CONFIG_CALL_THUNKS_DEBUG is not set
CONFIG_MITIGATION_IBPB_ENTRY=y
CONFIG_MITIGATION_IBRS_ENTRY=y
CONFIG_MITIGATION_SRSO=y
# CONFIG_MITIGATION_SLS is not set
CONFIG_MITIGATION_GDS=y
CONFIG_MITIGATION_RFDS=y
CONFIG_MITIGATION_SPECTRE_BHI=y
CONFIG_MITIGATION_MDS=y
CONFIG_MITIGATION_TAA=y
CONFIG_MITIGATION_MMIO_STALE_DATA=y
CONFIG_MITIGATION_L1TF=y
CONFIG_MITIGATION_RETBLEED=y
CONFIG_MITIGATION_SPECTRE_V1=y
CONFIG_MITIGATION_SPECTRE_V2=y
CONFIG_MITIGATION_SRBDS=y
CONFIG_MITIGATION_SSB=y
CONFIG_MITIGATION_ITS=y
CONFIG_MITIGATION_TSA=y
CONFIG_ARCH_HAS_ADD_PAGES=y

#
# Power management and ACPI options
#
CONFIG_ARCH_HIBERNATION_HEADER=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
CONFIG_HIBERNATE_CALLBACKS=y
CONFIG_HIBERNATION=y
CONFIG_HIBERNATION_SNAPSHOT_DEV=y
CONFIG_HIBERNATION_COMP_LZO=y
# CONFIG_HIBERNATION_COMP_LZ4 is not set
CONFIG_HIBERNATION_DEF_COMP="lzo"
CONFIG_PM_STD_PARTITION=""
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
# CONFIG_PM_AUTOSLEEP is not set
# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
# CONFIG_PM_WAKELOCKS is not set
# CONFIG_PM_QOS_CPU_SYSTEM_WAKEUP is not set
CONFIG_PM=y
CONFIG_PM_DEBUG=y
# CONFIG_PM_ADVANCED_DEBUG is not set
# CONFIG_PM_TEST_SUSPEND is not set
CONFIG_PM_SLEEP_DEBUG=y
CONFIG_PM_TRACE=y
CONFIG_PM_TRACE_RTC=y
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
# CONFIG_ENERGY_MODEL is not set
CONFIG_ARCH_SUPPORTS_ACPI=y
CONFIG_ACPI=y
CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
CONFIG_ACPI_THERMAL_LIB=y
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACPI_FPDT is not set
CONFIG_ACPI_LPIT=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
CONFIG_ACPI_EC=y
# CONFIG_ACPI_EC_DEBUGFS is not set
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=y
CONFIG_ACPI_FAN=y
# CONFIG_ACPI_TAD is not set
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_CPU_FREQ_PSS=y
CONFIG_ACPI_PROCESSOR_CSTATE=y
CONFIG_ACPI_PROCESSOR_IDLE=y
CONFIG_ACPI_CPPC_LIB=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_PLATFORM_PROFILE=y
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_DEBUG=y
# CONFIG_ACPI_PCI_SLOT is not set
CONFIG_ACPI_CONTAINER=y
CONFIG_ACPI_HOTPLUG_IOAPIC=y
# CONFIG_ACPI_SBS is not set
# CONFIG_ACPI_HED is not set
CONFIG_ACPI_BGRT=y
CONFIG_ACPI_NHLT=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_NUMA=y
# CONFIG_ACPI_HMAT is not set
CONFIG_HAVE_ACPI_APEI=y
CONFIG_HAVE_ACPI_APEI_NMI=y
# CONFIG_ACPI_APEI is not set
# CONFIG_ACPI_DPTF is not set
# CONFIG_ACPI_CONFIGFS is not set
# CONFIG_ACPI_PFRUT is not set
CONFIG_ACPI_PCC=y
# CONFIG_ACPI_FFH is not set
CONFIG_ACPI_MRRM=y
# CONFIG_PMIC_OPREGION is not set
CONFIG_ACPI_PRMT=y
CONFIG_X86_PM_TIMER=y

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_GOV_ATTR_SET=y
CONFIG_CPU_FREQ_GOV_COMMON=y
# CONFIG_CPU_FREQ_STAT is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y

#
# CPU frequency scaling drivers
#
CONFIG_X86_INTEL_PSTATE=y
# CONFIG_X86_PCC_CPUFREQ is not set
CONFIG_X86_AMD_PSTATE=y
CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3
# CONFIG_X86_AMD_PSTATE_UT is not set
CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_X86_ACPI_CPUFREQ_CPB=y
# CONFIG_X86_POWERNOW_K8 is not set
# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
# CONFIG_X86_P4_CLOCKMOD is not set

#
# shared options
#
CONFIG_CPUFREQ_ARCH_CUR_FREQ=y
# end of CPU Frequency scaling

#
# CPU Idle
#
CONFIG_CPU_IDLE=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set
CONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE_GOV_HALTPOLL=y
CONFIG_HALTPOLL_CPUIDLE=y
# end of CPU Idle

# CONFIG_INTEL_IDLE is not set
# end of Power management and ACPI options

#
# Bus options (PCI etc.)
#
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_MMCONF_FAM10H=y
CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y
CONFIG_AMD_NODE=y
# end of Bus options (PCI etc.)

#
# Binary Emulations
#
CONFIG_IA32_EMULATION=y
# CONFIG_IA32_EMULATION_DEFAULT_DISABLED is not set
# CONFIG_X86_X32_ABI is not set
CONFIG_COMPAT_32=y
CONFIG_COMPAT=y
CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
# end of Binary Emulations

CONFIG_VIRTUALIZATION=y
# CONFIG_KVM is not set
CONFIG_X86_REQUIRED_FEATURE_ALWAYS=y
CONFIG_X86_REQUIRED_FEATURE_NOPL=y
CONFIG_X86_REQUIRED_FEATURE_CX8=y
CONFIG_X86_REQUIRED_FEATURE_CMOV=y
CONFIG_X86_REQUIRED_FEATURE_SYSFAST32=y
CONFIG_X86_REQUIRED_FEATURE_CPUID=y
CONFIG_X86_REQUIRED_FEATURE_FPU=y
CONFIG_X86_REQUIRED_FEATURE_PAE=y
CONFIG_X86_REQUIRED_FEATURE_PSE=y
CONFIG_X86_REQUIRED_FEATURE_PGE=y
CONFIG_X86_REQUIRED_FEATURE_MSR=y
CONFIG_X86_REQUIRED_FEATURE_FXSR=y
CONFIG_X86_REQUIRED_FEATURE_XMM=y
CONFIG_X86_REQUIRED_FEATURE_XMM2=y
CONFIG_X86_REQUIRED_FEATURE_LM=y
CONFIG_X86_DISABLED_FEATURE_VME=y
CONFIG_X86_DISABLED_FEATURE_K6_MTRR=y
CONFIG_X86_DISABLED_FEATURE_CYRIX_ARR=y
CONFIG_X86_DISABLED_FEATURE_CENTAUR_MCR=y
CONFIG_X86_DISABLED_FEATURE_LAM=y
CONFIG_X86_DISABLED_FEATURE_ENQCMD=y
CONFIG_X86_DISABLED_FEATURE_SGX=y
CONFIG_X86_DISABLED_FEATURE_XENPV=y
CONFIG_X86_DISABLED_FEATURE_TDX_GUEST=y
CONFIG_X86_DISABLED_FEATURE_USER_SHSTK=y
CONFIG_X86_DISABLED_FEATURE_FRED=y
CONFIG_X86_DISABLED_FEATURE_SEV_SNP=y
CONFIG_AS_WRUSS=y
CONFIG_ARCH_CONFIGURES_CPU_MITIGATIONS=y

#
# General architecture-dependent options
#
CONFIG_HOTPLUG_SMT=y
CONFIG_ARCH_SUPPORTS_SCHED_SMT=y
CONFIG_ARCH_SUPPORTS_SCHED_CLUSTER=y
CONFIG_ARCH_SUPPORTS_SCHED_MC=y
CONFIG_SCHED_SMT=y
CONFIG_SCHED_CLUSTER=y
CONFIG_SCHED_MC=y
CONFIG_HOTPLUG_CORE_SYNC=y
CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
CONFIG_HOTPLUG_CORE_SYNC_FULL=y
CONFIG_HOTPLUG_SPLIT_STARTUP=y
CONFIG_HOTPLUG_PARALLEL=y
CONFIG_GENERIC_IRQ_ENTRY=y
CONFIG_GENERIC_SYSCALL=y
CONFIG_GENERIC_ENTRY=y
CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_CALL_SELFTEST is not set
CONFIG_OPTPROBES=y
CONFIG_UPROBES=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_KRETPROBES=y
CONFIG_KRETPROBE_ON_RETHOOK=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_KPROBES_ON_FTRACE=y
CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
CONFIG_HAVE_NMI=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
CONFIG_ARCH_HAS_SET_MEMORY=y
CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y
CONFIG_ARCH_HAS_CPU_PASID=y
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
CONFIG_ARCH_WANTS_NO_INSTR=y
CONFIG_ARCH_MEMORY_ORDER_TSO=y
CONFIG_HAVE_ASM_MODVERSIONS=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_RSEQ=y
CONFIG_HAVE_RUST=y
CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
CONFIG_UNWIND_USER=y
CONFIG_HAVE_UNWIND_USER_FP=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
CONFIG_MMU_GATHER_TABLE_FREE=y
CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
CONFIG_MMU_GATHER_MERGE_VMAS=y
CONFIG_ARCH_WANT_IRQS_OFF_ACTIVATE_MM=y
CONFIG_MMU_LAZY_TLB_REFCOUNT=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_ARCH_HAVE_EXTRA_ELF_NOTES=y
CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
CONFIG_HAVE_ARCH_SECCOMP=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP=y
CONFIG_SECCOMP_FILTER=y
# CONFIG_SECCOMP_CACHE_DEBUG is not set
CONFIG_HAVE_ARCH_KSTACK_ERASE=y
CONFIG_HAVE_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR_STRONG=y
CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
CONFIG_LTO_NONE=y
CONFIG_ARCH_SUPPORTS_CFI=y
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
CONFIG_HAVE_CONTEXT_TRACKING_USER=y
CONFIG_HAVE_CONTEXT_TRACKING_USER_OFFSTACK=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_PV_STEAL_CLOCK_GEN=y
CONFIG_HAVE_MOVE_PUD=y
CONFIG_HAVE_MOVE_PMD=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
CONFIG_HAVE_ARCH_HUGE_VMAP=y
CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_ARCH_HAS_EXECMEM_ROX=y
CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
CONFIG_SOFTIRQ_ON_OWN_STACK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
CONFIG_HAVE_EXIT_THREAD=y
CONFIG_ARCH_MMAP_RND_BITS=28
CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
CONFIG_HAVE_PAGE_SIZE_4KB=y
CONFIG_PAGE_SIZE_4KB=y
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
CONFIG_PAGE_SHIFT=12
CONFIG_HAVE_OBJTOOL=y
CONFIG_HAVE_JUMP_LABEL_HACK=y
CONFIG_HAVE_NOINSTR_HACK=y
CONFIG_HAVE_NOINSTR_VALIDATION=y
CONFIG_HAVE_UACCESS_VALIDATION=y
CONFIG_HAVE_STACK_VALIDATION=y
CONFIG_HAVE_RELIABLE_STACKTRACE=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_COMPAT_OLD_SIGACTION=y
CONFIG_COMPAT_32BIT_TIME=y
CONFIG_ARCH_SUPPORTS_RT=y
CONFIG_HAVE_ARCH_VMAP_STACK=y
CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
CONFIG_RANDOMIZE_KSTACK_OFFSET=y
# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y
CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
CONFIG_ARCH_USE_MEMREMAP_PROT=y
# CONFIG_LOCK_EVENT_COUNTS is not set
CONFIG_ARCH_HAS_MEM_ENCRYPT=y
CONFIG_HAVE_STATIC_CALL=y
CONFIG_HAVE_STATIC_CALL_INLINE=y
CONFIG_HAVE_PREEMPT_DYNAMIC=y
CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y
CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
CONFIG_ARCH_HAS_ELFCORE_COMPAT=y
CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y
CONFIG_DYNAMIC_SIGFRAME=y
CONFIG_ARCH_HAS_HW_PTE_YOUNG=y
CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y
CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y
CONFIG_ARCH_VMLINUX_NEEDS_RELOCS=y
CONFIG_HAVE_GENERIC_TIF_BITS=y

#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
# end of GCOV-based kernel profiling

CONFIG_HAVE_GCC_PLUGINS=y
CONFIG_FUNCTION_ALIGNMENT_4B=y
CONFIG_FUNCTION_ALIGNMENT_16B=y
CONFIG_FUNCTION_ALIGNMENT=16
CONFIG_ARCH_HAS_CPU_ATTACK_VECTORS=y
CONFIG_HAVE_ARCH_GET_SECUREBOOT=y
# end of General architecture-dependent options

CONFIG_RT_MUTEXES=y
CONFIG_MODULES=y
# CONFIG_MODULE_DEBUG is not set
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
CONFIG_MODPROBE_PATH="/sbin/modprobe"
# CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y
CONFIG_BLOCK_LEGACY_AUTOLOAD=y
CONFIG_BLK_RQ_ALLOC_TIME=y
CONFIG_BLK_DEV_BSG_COMMON=y
# CONFIG_BLK_DEV_BSGLIB is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
CONFIG_BLK_DEV_WRITE_MOUNTED=y
# CONFIG_BLK_DEV_ZONED is not set
# CONFIG_BLK_DEV_THROTTLING is not set
# CONFIG_BLK_WBT is not set
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOPRIO=y
CONFIG_BLK_DEBUG_FS=y
# CONFIG_BLK_SED_OPAL is not set
# CONFIG_BLK_INLINE_ENCRYPTION is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_EFI_PARTITION=y
# end of Partition Types

CONFIG_BLK_PM=y
CONFIG_BLOCK_HOLDER_DEPRECATED=y
CONFIG_BLK_MQ_STACKING=y
# CONFIG_BLK_ERROR_INJECTION is not set

#
# IO Schedulers
#
CONFIG_MQ_IOSCHED_DEADLINE=y
CONFIG_MQ_IOSCHED_KYBER=y
# CONFIG_IOSCHED_BFQ is not set
# end of IO Schedulers

CONFIG_PADATA=y
CONFIG_ASN1=y
CONFIG_UNINLINE_SPIN_UNLOCK=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_RWSEM_SPIN_ON_OWNER=y
CONFIG_LOCK_SPIN_ON_OWNER=y
CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
CONFIG_QUEUED_SPINLOCKS=y
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
CONFIG_QUEUED_RWLOCKS=y
CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
CONFIG_FREEZER=y

#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
CONFIG_ELFCORE=y
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
CONFIG_BINFMT_SCRIPT=y
CONFIG_BINFMT_MISC=y
CONFIG_COREDUMP=y
# end of Executable file formats

#
# Memory Management options
#
CONFIG_SWAP=y
# CONFIG_ZSWAP is not set

#
# Slab allocator options
#
CONFIG_SLUB=y
CONFIG_KVFREE_RCU_BATCHED=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLAB_FREELIST_RANDOM is not set
# CONFIG_SLAB_FREELIST_HARDENED is not set
# CONFIG_SLAB_BUCKETS is not set
# CONFIG_SLUB_STATS is not set
# CONFIG_KMALLOC_PARTITION_CACHES is not set
# end of Slab allocator options

# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
# CONFIG_COMPAT_BRK is not set
CONFIG_SPARSEMEM=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSEMEM_VMEMMAP_PREINIT=y
CONFIG_ARCH_WANT_OPTIMIZE_DAX_VMEMMAP=y
CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y
CONFIG_ARCH_WANT_HUGETLB_VMEMMAP_PREINIT=y
CONFIG_HAVE_GUP_FAST=y
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y
CONFIG_SPLIT_PTE_PTLOCKS=y
CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
CONFIG_SPLIT_PMD_PTLOCKS=y
CONFIG_COMPACTION=y
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
# CONFIG_PAGE_REPORTING is not set
CONFIG_NUMA_MIGRATION=y
CONFIG_MIGRATION=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
CONFIG_PCP_BATCH_SCALE_MAX=5
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_MMU_NOTIFIER=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
# CONFIG_MEMORY_FAILURE is not set
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ARCH_WANTS_THP_SWAP=y
# CONFIG_TRANSPARENT_HUGEPAGE is not set
CONFIG_PAGE_MAPCOUNT=y
CONFIG_PGTABLE_HAS_HUGE_LEAVES=y
CONFIG_HAVE_GIGANTIC_FOLIOS=y
CONFIG_ASYNC_KERNEL_PGTABLE_FREE=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
# CONFIG_CMA is not set
CONFIG_PAGE_BLOCK_MAX_ORDER=10
CONFIG_GENERIC_EARLY_IOREMAP=y
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
# CONFIG_IDLE_PAGE_TRACKING is not set
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
CONFIG_ZONE_DMA=y
CONFIG_ZONE_DMA32=y
CONFIG_VMAP_PFN=y
CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
CONFIG_ARCH_HAS_PKEYS=y
CONFIG_ARCH_USES_PG_ARCH_2=y
CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_PERCPU_STATS is not set
# CONFIG_GUP_TEST is not set
# CONFIG_DMAPOOL_TEST is not set
CONFIG_ARCH_HAS_PTE_SPECIAL=y
CONFIG_MEMFD_CREATE=y
CONFIG_SECRETMEM=y
# CONFIG_ANON_VMA_NAME is not set
# CONFIG_USERFAULTFD is not set
# CONFIG_LRU_GEN is not set
CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
CONFIG_PER_VMA_LOCK=y
CONFIG_LOCK_MM_AND_FIND_VMA=y
CONFIG_IOMMU_MM_DATA=y
CONFIG_EXECMEM=y
CONFIG_NUMA_MEMBLKS=y
# CONFIG_NUMA_EMU is not set
CONFIG_PT_RECLAIM=y

#
# Data Access Monitoring
#
# CONFIG_DAMON is not set
# end of Data Access Monitoring
# end of Memory Management options

CONFIG_NET=y
CONFIG_NET_INGRESS=y
CONFIG_NET_EGRESS=y
CONFIG_NET_XGRESS=y
CONFIG_NET_REDIRECT=y
CONFIG_SKB_EXTENSIONS=y
CONFIG_NET_DEVMEM=y
CONFIG_NET_CRC32C=y

#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_DIAG is not set
# CONFIG_INET_PSP is not set
CONFIG_UNIX=y
CONFIG_AF_UNIX_OOB=y
# CONFIG_UNIX_DIAG is not set
# CONFIG_TLS is not set
CONFIG_XFRM=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
# CONFIG_XFRM_USER_COMPAT is not set
# CONFIG_XFRM_INTERFACE is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not set
CONFIG_XFRM_AH=y
CONFIG_XFRM_ESP=y
# CONFIG_NET_KEY is not set
# CONFIG_XFRM_IPTFS is not set
# CONFIG_DIBS is not set
CONFIG_NET_HANDSHAKE=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
# CONFIG_IP_FIB_TRIE_STATS is not set
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_PNP_RARP=y
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE_DEMUX is not set
CONFIG_NET_IP_TUNNEL=y
CONFIG_IP_MROUTE_COMMON=y
CONFIG_IP_MROUTE=y
# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_SYN_COOKIES=y
# CONFIG_NET_IPVTI is not set
# CONFIG_NET_FOU is not set
# CONFIG_NET_FOU_IP_TUNNELS is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
CONFIG_INET_TABLE_PERTURB_ORDER=16
CONFIG_INET_TUNNEL=y
# CONFIG_INET_DIAG is not set
CONFIG_TCP_CONG_ADVANCED=y
# CONFIG_TCP_CONG_BIC is not set
CONFIG_TCP_CONG_CUBIC=y
# CONFIG_TCP_CONG_WESTWOOD is not set
# CONFIG_TCP_CONG_HTCP is not set
# CONFIG_TCP_CONG_HSTCP is not set
# CONFIG_TCP_CONG_HYBLA is not set
# CONFIG_TCP_CONG_VEGAS is not set
# CONFIG_TCP_CONG_NV is not set
# CONFIG_TCP_CONG_SCALABLE is not set
# CONFIG_TCP_CONG_LP is not set
# CONFIG_TCP_CONG_VENO is not set
# CONFIG_TCP_CONG_YEAH is not set
# CONFIG_TCP_CONG_ILLINOIS is not set
# CONFIG_TCP_CONG_DCTCP is not set
# CONFIG_TCP_CONG_CDG is not set
# CONFIG_TCP_CONG_BBR is not set
CONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not set
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_AO is not set
CONFIG_TCP_MD5SIG=y
CONFIG_IPV6=y
# CONFIG_IPV6_ROUTER_PREF is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set
CONFIG_INET6_AH=y
CONFIG_INET6_ESP=y
# CONFIG_INET6_ESP_OFFLOAD is not set
# CONFIG_INET6_ESPINTCP is not set
# CONFIG_INET6_IPCOMP is not set
# CONFIG_IPV6_MIP6 is not set
# CONFIG_IPV6_ILA is not set
# CONFIG_IPV6_VTI is not set
CONFIG_IPV6_SIT=y
# CONFIG_IPV6_SIT_6RD is not set
CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_IPV6_TUNNEL is not set
# CONFIG_IPV6_MULTIPLE_TABLES is not set
# CONFIG_IPV6_MROUTE is not set
# CONFIG_IPV6_SEG6_LWTUNNEL is not set
# CONFIG_IPV6_SEG6_HMAC is not set
# CONFIG_IPV6_RPL_LWTUNNEL is not set
# CONFIG_IPV6_IOAM6_LWTUNNEL is not set
CONFIG_NETLABEL=y
# CONFIG_MPTCP is not set
CONFIG_NETWORK_SECMARK=y
CONFIG_NET_PTP_CLASSIFY=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
CONFIG_NETFILTER=y
CONFIG_NETFILTER_ADVANCED=y
# CONFIG_BRIDGE_NETFILTER is not set

#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_INGRESS=y
CONFIG_NETFILTER_EGRESS=y
CONFIG_NETFILTER_SKIP_EGRESS=y
CONFIG_NETFILTER_NETLINK=y
CONFIG_NETFILTER_FAMILY_ARP=y
# CONFIG_NETFILTER_NETLINK_HOOK is not set
# CONFIG_NETFILTER_NETLINK_ACCT is not set
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
CONFIG_NETFILTER_NETLINK_LOG=y
# CONFIG_NETFILTER_NETLINK_OSF is not set
CONFIG_NF_CONNTRACK=y
CONFIG_NF_LOG_SYSLOG=m
# CONFIG_NF_CONNTRACK_MARK is not set
CONFIG_NF_CONNTRACK_SECMARK=y
# CONFIG_NF_CONNTRACK_ZONES is not set
# CONFIG_NF_CONNTRACK_PROCFS is not set
# CONFIG_NF_CONNTRACK_EVENTS is not set
# CONFIG_NF_CONNTRACK_TIMEOUT is not set
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
# CONFIG_NF_CONNTRACK_LABELS is not set
CONFIG_NF_CT_PROTO_SCTP=y
# CONFIG_NF_CONNTRACK_AMANDA is not set
CONFIG_NF_CONNTRACK_FTP=y
# CONFIG_NF_CONNTRACK_H323 is not set
CONFIG_NF_CONNTRACK_IRC=y
# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
# CONFIG_NF_CONNTRACK_SNMP is not set
# CONFIG_NF_CONNTRACK_PPTP is not set
# CONFIG_NF_CONNTRACK_SANE is not set
CONFIG_NF_CONNTRACK_SIP=y
# CONFIG_NF_CONNTRACK_TFTP is not set
CONFIG_NF_CT_NETLINK=y
# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set
CONFIG_NF_NAT=y
CONFIG_NF_NAT_FTP=y
CONFIG_NF_NAT_IRC=y
CONFIG_NF_NAT_SIP=y
CONFIG_NF_NAT_MASQUERADE=y
CONFIG_NF_TABLES=y
CONFIG_NF_TABLES_INET=y
CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=y
CONFIG_NFT_CT=y
# CONFIG_NFT_EXTHDR_DCCP is not set
# CONFIG_NFT_CONNLIMIT is not set
CONFIG_NFT_LOG=y
CONFIG_NFT_LIMIT=y
# CONFIG_NFT_MASQ is not set
# CONFIG_NFT_REDIR is not set
CONFIG_NFT_NAT=y
# CONFIG_NFT_TUNNEL is not set
# CONFIG_NFT_QUOTA is not set
CONFIG_NFT_REJECT=m
CONFIG_NFT_REJECT_INET=m
# CONFIG_NFT_COMPAT is not set
# CONFIG_NFT_HASH is not set
CONFIG_NFT_FIB=y
CONFIG_NFT_FIB_INET=y
# CONFIG_NFT_XFRM is not set
# CONFIG_NFT_SOCKET is not set
# CONFIG_NFT_OSF is not set
# CONFIG_NFT_TPROXY is not set
# CONFIG_NFT_SYNPROXY is not set
CONFIG_NF_DUP_NETDEV=y
CONFIG_NFT_DUP_NETDEV=y
CONFIG_NFT_FWD_NETDEV=y
CONFIG_NFT_FIB_NETDEV=y
# CONFIG_NFT_REJECT_NETDEV is not set
# CONFIG_NF_FLOW_TABLE is not set
CONFIG_NETFILTER_XTABLES=y
# CONFIG_NETFILTER_XTABLES_COMPAT is not set
# CONFIG_NETFILTER_XTABLES_LEGACY is not set

#
# Xtables combined modules
#
CONFIG_NETFILTER_XT_MARK=m
# CONFIG_NETFILTER_XT_CONNMARK is not set

#
# Xtables targets
#
# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
# CONFIG_NETFILTER_XT_TARGET_LED is not set
CONFIG_NETFILTER_XT_TARGET_LOG=m
# CONFIG_NETFILTER_XT_TARGET_MARK is not set
# CONFIG_NETFILTER_XT_NAT is not set
# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
CONFIG_NETFILTER_XT_TARGET_NFLOG=y
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
# CONFIG_NETFILTER_XT_TARGET_TEE is not set
CONFIG_NETFILTER_XT_TARGET_SECMARK=y
CONFIG_NETFILTER_XT_TARGET_TCPMSS=y

#
# Xtables matches
#
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
# CONFIG_NETFILTER_XT_MATCH_BPF is not set
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
# CONFIG_NETFILTER_XT_MATCH_CPU is not set
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
# CONFIG_NETFILTER_XT_MATCH_ECN is not set
# CONFIG_NETFILTER_XT_MATCH_ESP is not set
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
# CONFIG_NETFILTER_XT_MATCH_HL is not set
# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
# CONFIG_NETFILTER_XT_MATCH_MAC is not set
# CONFIG_NETFILTER_XT_MATCH_MARK is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
# CONFIG_NETFILTER_XT_MATCH_OSF is not set
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
CONFIG_NETFILTER_XT_MATCH_POLICY=y
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
# CONFIG_NETFILTER_XT_MATCH_REALM is not set
# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
CONFIG_NETFILTER_XT_MATCH_STATE=y
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
# CONFIG_NETFILTER_XT_MATCH_STRING is not set
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# end of Core Netfilter Configuration

# CONFIG_IP_SET is not set
# CONFIG_IP_VS is not set

#
# IP: Netfilter Configuration
#
CONFIG_NF_DEFRAG_IPV4=y
# CONFIG_NF_SOCKET_IPV4 is not set
# CONFIG_NF_TPROXY_IPV4 is not set
CONFIG_NF_TABLES_IPV4=y
CONFIG_NFT_REJECT_IPV4=m
# CONFIG_NFT_DUP_IPV4 is not set
CONFIG_NFT_FIB_IPV4=y
CONFIG_NF_TABLES_ARP=y
# CONFIG_NF_DUP_IPV4 is not set
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_NF_REJECT_IPV4=m
CONFIG_IP_NF_IPTABLES=y
# CONFIG_IP_NF_MATCH_AH is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_TTL is not set
# CONFIG_IP_NF_TARGET_SYNPROXY is not set
# end of IP: Netfilter Configuration

#
# IPv6: Netfilter Configuration
#
# CONFIG_NF_SOCKET_IPV6 is not set
# CONFIG_NF_TPROXY_IPV6 is not set
CONFIG_NF_TABLES_IPV6=y
CONFIG_NFT_REJECT_IPV6=m
CONFIG_NFT_DUP_IPV6=y
CONFIG_NFT_FIB_IPV6=y
CONFIG_NF_DUP_IPV6=y
CONFIG_NF_REJECT_IPV6=m
CONFIG_NF_LOG_IPV6=m
CONFIG_IP6_NF_IPTABLES=y
# CONFIG_IP6_NF_MATCH_AH is not set
# CONFIG_IP6_NF_MATCH_EUI64 is not set
# CONFIG_IP6_NF_MATCH_FRAG is not set
# CONFIG_IP6_NF_MATCH_OPTS is not set
# CONFIG_IP6_NF_MATCH_HL is not set
CONFIG_IP6_NF_MATCH_IPV6HEADER=y
# CONFIG_IP6_NF_MATCH_MH is not set
# CONFIG_IP6_NF_MATCH_RT is not set
# CONFIG_IP6_NF_MATCH_SRH is not set
# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
# end of IPv6: Netfilter Configuration

CONFIG_NF_DEFRAG_IPV6=y
# CONFIG_NF_TABLES_BRIDGE is not set
# CONFIG_NF_CONNTRACK_BRIDGE is not set
# CONFIG_BRIDGE_NF_EBTABLES is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
CONFIG_STP=y
CONFIG_BRIDGE=y
CONFIG_BRIDGE_IGMP_SNOOPING=y
# CONFIG_BRIDGE_VLAN_FILTERING is not set
# CONFIG_BRIDGE_MRP is not set
# CONFIG_BRIDGE_CFM is not set
# CONFIG_NET_DSA is not set
CONFIG_VLAN_8021Q=y
# CONFIG_VLAN_8021Q_GVRP is not set
# CONFIG_VLAN_8021Q_MVRP is not set
CONFIG_LLC=y
# CONFIG_LLC2 is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_PHONET is not set
# CONFIG_6LOWPAN is not set
# CONFIG_IEEE802154 is not set
CONFIG_NET_SCHED=y

#
# Queueing/Scheduling
#
# CONFIG_NET_SCH_HTB is not set
# CONFIG_NET_SCH_HFSC is not set
# CONFIG_NET_SCH_PRIO is not set
# CONFIG_NET_SCH_MULTIQ is not set
# CONFIG_NET_SCH_RED is not set
# CONFIG_NET_SCH_SFB is not set
# CONFIG_NET_SCH_SFQ is not set
# CONFIG_NET_SCH_TEQL is not set
# CONFIG_NET_SCH_TBF is not set
# CONFIG_NET_SCH_CBS is not set
# CONFIG_NET_SCH_ETF is not set
# CONFIG_NET_SCH_TAPRIO is not set
# CONFIG_NET_SCH_GRED is not set
# CONFIG_NET_SCH_NETEM is not set
# CONFIG_NET_SCH_DRR is not set
# CONFIG_NET_SCH_MQPRIO is not set
# CONFIG_NET_SCH_SKBPRIO is not set
# CONFIG_NET_SCH_CHOKE is not set
# CONFIG_NET_SCH_QFQ is not set
# CONFIG_NET_SCH_CODEL is not set
# CONFIG_NET_SCH_FQ_CODEL is not set
# CONFIG_NET_SCH_CAKE is not set
# CONFIG_NET_SCH_FQ is not set
# CONFIG_NET_SCH_HHF is not set
# CONFIG_NET_SCH_PIE is not set
# CONFIG_NET_SCH_INGRESS is not set
# CONFIG_NET_SCH_PLUG is not set
# CONFIG_NET_SCH_ETS is not set
# CONFIG_NET_SCH_DUALPI2 is not set
# CONFIG_NET_SCH_DEFAULT is not set

#
# Classification
#
CONFIG_NET_CLS=y
# CONFIG_NET_CLS_BASIC is not set
# CONFIG_NET_CLS_ROUTE4 is not set
# CONFIG_NET_CLS_FW is not set
# CONFIG_NET_CLS_U32 is not set
# CONFIG_NET_CLS_FLOW is not set
CONFIG_NET_CLS_CGROUP=y
# CONFIG_NET_CLS_BPF is not set
# CONFIG_NET_CLS_FLOWER is not set
# CONFIG_NET_CLS_MATCHALL is not set
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
# CONFIG_NET_EMATCH_CMP is not set
# CONFIG_NET_EMATCH_NBYTE is not set
# CONFIG_NET_EMATCH_U32 is not set
# CONFIG_NET_EMATCH_META is not set
# CONFIG_NET_EMATCH_TEXT is not set
# CONFIG_NET_EMATCH_IPT is not set
CONFIG_NET_CLS_ACT=y
# CONFIG_NET_ACT_POLICE is not set
# CONFIG_NET_ACT_GACT is not set
# CONFIG_NET_ACT_MIRRED is not set
# CONFIG_NET_ACT_SAMPLE is not set
# CONFIG_NET_ACT_NAT is not set
# CONFIG_NET_ACT_PEDIT is not set
# CONFIG_NET_ACT_SIMP is not set
# CONFIG_NET_ACT_SKBEDIT is not set
# CONFIG_NET_ACT_CSUM is not set
# CONFIG_NET_ACT_MPLS is not set
# CONFIG_NET_ACT_VLAN is not set
# CONFIG_NET_ACT_BPF is not set
# CONFIG_NET_ACT_SKBMOD is not set
# CONFIG_NET_ACT_IFE is not set
# CONFIG_NET_ACT_TUNNEL_KEY is not set
# CONFIG_NET_ACT_GATE is not set
# CONFIG_NET_TC_SKB_EXT is not set
CONFIG_NET_SCH_FIFO=y
# CONFIG_DCB is not set
CONFIG_DNS_RESOLVER=y
# CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set
# CONFIG_VSOCKETS is not set
# CONFIG_NETLINK_DIAG is not set
# CONFIG_MPLS is not set
# CONFIG_NET_NSH is not set
# CONFIG_HSR is not set
# CONFIG_NET_SWITCHDEV is not set
# CONFIG_NET_L3_MASTER_DEV is not set
# CONFIG_QRTR is not set
# CONFIG_NET_NCSI is not set
CONFIG_PCPU_DEV_REFCNT=y
CONFIG_MAX_SKB_FRAGS=17
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
CONFIG_SOCK_RX_QUEUE_MAPPING=y
CONFIG_XPS=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
CONFIG_NET_FLOW_LIMIT=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_DROP_MONITOR is not set
# end of Network testing
# end of Networking options

# CONFIG_CAN is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_AF_KCM is not set
# CONFIG_MCTP is not set
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_CFG80211=y
# CONFIG_NL80211_TESTMODE is not set
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
CONFIG_CFG80211_DEFAULT_PS=y
# CONFIG_CFG80211_DEBUGFS is not set
CONFIG_CFG80211_CRDA_SUPPORT=y
# CONFIG_CFG80211_WEXT is not set
CONFIG_MAC80211=y
CONFIG_MAC80211_HAS_RC=y
CONFIG_MAC80211_RC_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
# CONFIG_MAC80211_MESH is not set
CONFIG_MAC80211_LEDS=y
# CONFIG_MAC80211_MESSAGE_TRACING is not set
# CONFIG_MAC80211_DEBUG_MENU is not set
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
CONFIG_RFKILL=y
CONFIG_RFKILL_LEDS=y
CONFIG_RFKILL_INPUT=y
CONFIG_NET_9P=y
CONFIG_NET_9P_FD=y
CONFIG_NET_9P_VIRTIO=y
# CONFIG_NET_9P_DEBUG is not set
# CONFIG_CEPH_LIB is not set
# CONFIG_NFC is not set
# CONFIG_PSAMPLE is not set
# CONFIG_NET_IFE is not set
# CONFIG_LWTUNNEL is not set
CONFIG_DST_CACHE=y
CONFIG_GRO_CELLS=y
CONFIG_NET_SELFTESTS=y
CONFIG_PAGE_POOL=y
# CONFIG_PAGE_POOL_STATS is not set
CONFIG_FAILOVER=y
CONFIG_ETHTOOL_NETLINK=y

#
# Device Drivers
#
CONFIG_HAVE_PCI=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCIEPORTBUS=y
# CONFIG_HOTPLUG_PCI_PCIE is not set
# CONFIG_PCIEAER is not set
CONFIG_PCIEASPM=y
CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
# CONFIG_PCIE_PTM is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_QUIRKS=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_STUB is not set
CONFIG_PCI_ATS=y
# CONFIG_PCI_TSM is not set
# CONFIG_PCI_DOE is not set
CONFIG_PCI_LOCKLESS_CONFIG=y
# CONFIG_PCI_IOV is not set
# CONFIG_PCI_NPEM is not set
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
# CONFIG_PCIE_TPH is not set
CONFIG_PCI_LABEL=y
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_HOTPLUG_PCI=y
# CONFIG_HOTPLUG_PCI_ACPI is not set
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_OCTEONEP is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set

#
# PCI controller drivers
#
# CONFIG_VMD is not set

#
# Cadence-based PCIe controllers
#
# end of Cadence-based PCIe controllers

#
# DesignWare-based PCIe controllers
#
# CONFIG_PCI_MESON is not set
# CONFIG_PCIE_DW_PLAT_HOST is not set
# end of DesignWare-based PCIe controllers

#
# Mobiveil-based PCIe controllers
#
# end of Mobiveil-based PCIe controllers

#
# PLDA-based PCIe controllers
#
# end of PLDA-based PCIe controllers
# end of PCI controller drivers

#
# PCI Endpoint
#
# CONFIG_PCI_ENDPOINT is not set
# end of PCI Endpoint

#
# PCI switch controller drivers
#
# CONFIG_PCI_SW_SWITCHTEC is not set
# end of PCI switch controller drivers

CONFIG_PCI_PWRCTRL=y
CONFIG_PCI_PWRCTRL_GENERIC=y
# CONFIG_PCI_PWRCTRL_TC9563 is not set
# CONFIG_CXL_BUS is not set
CONFIG_PCCARD=y
CONFIG_PCMCIA=y
CONFIG_PCMCIA_LOAD_CIS=y
CONFIG_CARDBUS=y

#
# PC-card bridges
#
CONFIG_YENTA=y
CONFIG_YENTA_O2=y
CONFIG_YENTA_RICOH=y
CONFIG_YENTA_TI=y
CONFIG_YENTA_ENE_TUNE=y
CONFIG_YENTA_TOSHIBA=y
# CONFIG_PD6729 is not set
CONFIG_PCCARD_NONSTATIC=y
# CONFIG_RAPIDIO is not set

#
# Generic Driver Options
#
CONFIG_AUXILIARY_BUS=y
# CONFIG_UEVENT_HELPER is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# CONFIG_DEVTMPFS_SAFE is not set
CONFIG_DRIVER_DEFERRED_PROBE_TIMEOUT=10
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y

#
# Firmware loader
#
CONFIG_FW_LOADER=y
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_FW_LOADER_USER_HELPER is not set
# CONFIG_FW_LOADER_COMPRESS is not set
CONFIG_FW_CACHE=y
# CONFIG_FW_UPLOAD is not set
# end of Firmware loader

CONFIG_ALLOW_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not set
CONFIG_DEBUG_DEVRES=y
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
CONFIG_GENERIC_CPU_DEVICES=y
CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_GENERIC_CPU_VULNERABILITIES=y
CONFIG_REGMAP=y
CONFIG_DMA_SHARED_BUFFER=y
# CONFIG_DMA_FENCE_TRACE is not set
# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set
# end of Generic Driver Options

#
# Bus devices
#
# CONFIG_MHI_BUS is not set
# CONFIG_MHI_BUS_EP is not set
# end of Bus devices

CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y

#
# Firmware Drivers
#

#
# ARM System Control and Management Interface Protocol
#
# end of ARM System Control and Management Interface Protocol

# CONFIG_EDD is not set
CONFIG_FIRMWARE_MEMMAP=y
CONFIG_DMIID=y
# CONFIG_DMI_SYSFS is not set
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
# CONFIG_ISCSI_IBFT is not set
# CONFIG_FW_CFG_SYSFS is not set
# CONFIG_SYSFB_SIMPLEFB is not set
# CONFIG_GOOGLE_FIRMWARE is not set

#
# EFI (Extensible Firmware Interface) Support
#
CONFIG_EFI_ESRT=y
CONFIG_EFI_DXE_MEM_ATTRIBUTES=y
CONFIG_EFI_RUNTIME_WRAPPERS=y
# CONFIG_EFI_BOOTLOADER_CONTROL is not set
# CONFIG_EFI_CAPSULE_LOADER is not set
# CONFIG_EFI_TEST is not set
# CONFIG_APPLE_PROPERTIES is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
# CONFIG_EFI_RCI2_TABLE is not set
# CONFIG_EFI_DISABLE_PCI_DMA is not set
CONFIG_EFI_EARLYCON=y
CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
# CONFIG_EFI_DISABLE_RUNTIME is not set
# CONFIG_EFI_COCO_SECRET is not set
# CONFIG_OVMF_DEBUG_LOG is not set
CONFIG_EFI_SBAT_FILE=""
# end of EFI (Extensible Firmware Interface) Support

#
# Qualcomm firmware drivers
#
# end of Qualcomm firmware drivers

#
# Tegra firmware driver
#
# end of Tegra firmware driver
# end of Firmware Drivers

# CONFIG_FWCTL is not set
# CONFIG_GNSS is not set
# CONFIG_MTD is not set
# CONFIG_OF is not set
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
# CONFIG_PARPORT is not set
CONFIG_PNP=y
CONFIG_PNP_DEBUG_MESSAGES=y

#
# Protocols
#
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_NULL_BLK is not set
# CONFIG_BLK_DEV_FD is not set
CONFIG_CDROM=y
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_ZRAM is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
# CONFIG_BLK_DEV_DRBD is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_VIRTIO_BLK=y
# CONFIG_BLK_DEV_RBD is not set
# CONFIG_BLK_DEV_UBLK is not set

#
# NVME Support
#
# CONFIG_BLK_DEV_NVME is not set
# CONFIG_NVME_FC is not set
# CONFIG_NVME_TCP is not set
# CONFIG_NVME_TARGET is not set
# end of NVME Support

#
# Misc devices
#
# CONFIG_AD525X_DPOT is not set
# CONFIG_DUMMY_IRQ is not set
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
# CONFIG_RPMB is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HP_ILO is not set
# CONFIG_APDS9802ALS is not set
# CONFIG_ISL29003 is not set
# CONFIG_ISL29020 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_SENSORS_BH1770 is not set
# CONFIG_HMC6352 is not set
# CONFIG_DS1682 is not set
# CONFIG_SRAM is not set
# CONFIG_DW_XDATA_PCIE is not set
# CONFIG_PCI_ENDPOINT_TEST is not set
# CONFIG_XILINX_SDFEC is not set
# CONFIG_NTSYNC is not set
# CONFIG_NSM is not set
# CONFIG_C2PORT is not set

#
# EEPROM support
#
# CONFIG_EEPROM_AT24 is not set
# CONFIG_EEPROM_MAX6875 is not set
CONFIG_EEPROM_93CX6=y
# CONFIG_EEPROM_IDT_89HPESX is not set
# CONFIG_EEPROM_EE1004 is not set
# CONFIG_EEPROM_M24LR is not set
# end of EEPROM support

# CONFIG_CB710_CORE is not set
# CONFIG_SENSORS_LIS3_I2C is not set
# CONFIG_ALTERA_STAPL is not set
CONFIG_INTEL_MEI=y
CONFIG_INTEL_MEI_ME=y
# CONFIG_INTEL_MEI_TXE is not set
# CONFIG_INTEL_MEI_GSC is not set
# CONFIG_INTEL_MEI_CSC is not set
# CONFIG_INTEL_MEI_HDCP is not set
# CONFIG_INTEL_MEI_PXP is not set
# CONFIG_INTEL_MEI_GSC_PROXY is not set
# CONFIG_VMWARE_VMCI is not set
# CONFIG_GENWQE is not set
# CONFIG_BCM_VK is not set
# CONFIG_MISC_ALCOR_PCI is not set
# CONFIG_MISC_RTSX_PCI is not set
# CONFIG_MISC_RTSX_USB is not set
# CONFIG_UACCE is not set
# CONFIG_PVPANIC is not set
# CONFIG_KEBA_CP500 is not set
# end of Misc devices

#
# SCSI device support
#
CONFIG_SCSI_MOD=y
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI_COMMON=y
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
CONFIG_BLK_DEV_BSG=y
# CONFIG_CHR_DEV_SCH is not set
CONFIG_SCSI_CONSTANTS=y
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
# end of SCSI Transports

CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_ISCSI_BOOT_SYSFS is not set
# CONFIG_SCSI_CXGB3_ISCSI is not set
# CONFIG_SCSI_CXGB4_ISCSI is not set
# CONFIG_SCSI_BNX2_ISCSI is not set
# CONFIG_BE2ISCSI is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_HPSA is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_3W_SAS is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_MVSAS is not set
# CONFIG_SCSI_MVUMI is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_SCSI_ESAS2R is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_MPT3SAS is not set
# CONFIG_SCSI_MPT2SAS is not set
# CONFIG_SCSI_MPI3MR is not set
# CONFIG_SCSI_SMARTPQI is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_MYRB is not set
# CONFIG_SCSI_MYRS is not set
# CONFIG_VMWARE_PVSCSI is not set
# CONFIG_SCSI_SNIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_FDOMAIN_PCI is not set
# CONFIG_SCSI_ISCI is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_WD719X is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_PMCRAID is not set
# CONFIG_SCSI_PM8001 is not set
CONFIG_SCSI_VIRTIO=y
# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
# CONFIG_SCSI_DH is not set
# end of SCSI device support

CONFIG_ATA=y
CONFIG_SATA_HOST=y
CONFIG_PATA_TIMINGS=y
CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_ATA_FORCE=y
CONFIG_ATA_ACPI=y
# CONFIG_SATA_ZPODD is not set
CONFIG_SATA_PMP=y

#
# Controllers with non-SFF native interface
#
CONFIG_SATA_AHCI=y
CONFIG_SATA_MOBILE_LPM_POLICY=3
# CONFIG_SATA_AHCI_PLATFORM is not set
# CONFIG_AHCI_DWC is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_SATA_ACARD_AHCI is not set
# CONFIG_SATA_SIL24 is not set
CONFIG_ATA_SFF=y

#
# SFF controllers with custom DMA interface
#
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_SX4 is not set
CONFIG_ATA_BMDMA=y

#
# SATA SFF controllers with BMDMA
#
CONFIG_ATA_PIIX=y
# CONFIG_SATA_DWC is not set
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SIL is not set
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_SVW is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set

#
# PATA SFF controllers with BMDMA
#
# CONFIG_PATA_ALI is not set
CONFIG_PATA_AMD=y
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_ATP867X is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_MARVELL is not set
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87415 is not set
CONFIG_PATA_OLDPIIX=y
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RDC is not set
CONFIG_PATA_SCH=y
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_TOSHIBA is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set

#
# PIO-only SFF controllers
#
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_MPIIX is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_PCMCIA is not set
# CONFIG_PATA_RZ1000 is not set

#
# Generic fallback / legacy drivers
#
# CONFIG_PATA_ACPI is not set
# CONFIG_ATA_GENERIC is not set
# CONFIG_PATA_LEGACY is not set
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
CONFIG_MD_BITMAP=y
# CONFIG_MD_LLBITMAP is not set
CONFIG_MD_AUTODETECT=y
CONFIG_MD_BITMAP_FILE=y
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_RAID0 is not set
# CONFIG_MD_RAID1 is not set
# CONFIG_MD_RAID10 is not set
# CONFIG_MD_RAID456 is not set
# CONFIG_BCACHE is not set
CONFIG_BLK_DEV_DM_BUILTIN=y
CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set
# CONFIG_DM_UNSTRIPED is not set
# CONFIG_DM_CRYPT is not set
# CONFIG_DM_SNAPSHOT is not set
# CONFIG_DM_THIN_PROVISIONING is not set
# CONFIG_DM_CACHE is not set
# CONFIG_DM_WRITECACHE is not set
# CONFIG_DM_EBS is not set
# CONFIG_DM_ERA is not set
# CONFIG_DM_CLONE is not set
CONFIG_DM_MIRROR=y
# CONFIG_DM_LOG_USERSPACE is not set
# CONFIG_DM_RAID is not set
CONFIG_DM_ZERO=y
# CONFIG_DM_MULTIPATH is not set
# CONFIG_DM_DELAY is not set
# CONFIG_DM_DUST is not set
# CONFIG_DM_INIT is not set
# CONFIG_DM_UEVENT is not set
# CONFIG_DM_FLAKEY is not set
# CONFIG_DM_VERITY is not set
# CONFIG_DM_SWITCH is not set
# CONFIG_DM_LOG_WRITES is not set
# CONFIG_DM_INTEGRITY is not set
# CONFIG_DM_AUDIT is not set
# CONFIG_DM_VDO is not set
# CONFIG_TARGET_CORE is not set
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_FIREWIRE_NOSY is not set
# end of IEEE 1394 (FireWire) support

CONFIG_MACINTOSH_DRIVERS=y
CONFIG_MAC_EMUMOUSEBTN=y
CONFIG_NETDEVICES=y
CONFIG_MII=y
CONFIG_NET_CORE=y
# CONFIG_BONDING is not set
CONFIG_DUMMY=y
# CONFIG_WIREGUARD is not set
# CONFIG_OVPN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_NET_FC is not set
CONFIG_IFB=y
# CONFIG_NET_TEAM is not set
# CONFIG_MACVLAN is not set
# CONFIG_IPVLAN is not set
# CONFIG_VXLAN is not set
# CONFIG_GENEVE is not set
# CONFIG_BAREUDP is not set
# CONFIG_GTP is not set
# CONFIG_PFCP is not set
# CONFIG_AMT is not set
# CONFIG_MACSEC is not set
CONFIG_NETCONSOLE=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
# CONFIG_NETCONSOLE_EXTENDED_LOG is not set
CONFIG_NETPOLL=y
CONFIG_NET_POLL_CONTROLLER=y
CONFIG_TUN=y
# CONFIG_TUN_VNET_CROSS_LE is not set
CONFIG_VETH=y
CONFIG_VIRTIO_NET=y
# CONFIG_NLMON is not set
# CONFIG_ARCNET is not set
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_3COM=y
# CONFIG_VORTEX is not set
# CONFIG_TYPHOON is not set
CONFIG_NET_VENDOR_ADAPTEC=y
# CONFIG_ADAPTEC_STARFIRE is not set
CONFIG_NET_VENDOR_AGERE=y
# CONFIG_ET131X is not set
CONFIG_NET_VENDOR_ALACRITECH=y
# CONFIG_SLICOSS is not set
CONFIG_NET_VENDOR_ALIBABA=y
# CONFIG_ALIBABA_EEA is not set
# CONFIG_ALTERA_TSE is not set
CONFIG_NET_VENDOR_AMAZON=y
# CONFIG_ENA_ETHERNET is not set
CONFIG_NET_VENDOR_AMD=y
# CONFIG_AMD8111_ETH is not set
# CONFIG_PCNET32 is not set
# CONFIG_AMD_XGBE is not set
# CONFIG_PDS_CORE is not set
CONFIG_NET_VENDOR_AQUANTIA=y
# CONFIG_AQTION is not set
CONFIG_NET_VENDOR_ARC=y
CONFIG_NET_VENDOR_ASIX=y
CONFIG_NET_VENDOR_ATHEROS=y
# CONFIG_ATL2 is not set
# CONFIG_ATL1 is not set
# CONFIG_ATL1E is not set
# CONFIG_ATL1C is not set
# CONFIG_ALX is not set
# CONFIG_CX_ECAT is not set
CONFIG_NET_VENDOR_BROADCOM=y
# CONFIG_B44 is not set
# CONFIG_BCMGENET is not set
# CONFIG_BNX2 is not set
# CONFIG_CNIC is not set
CONFIG_TIGON3=y
CONFIG_TIGON3_HWMON=y
# CONFIG_BNX2X is not set
# CONFIG_SYSTEMPORT is not set
# CONFIG_BNXT is not set
# CONFIG_BNGE is not set
CONFIG_NET_VENDOR_CADENCE=y
CONFIG_NET_VENDOR_CAVIUM=y
# CONFIG_THUNDER_NIC_PF is not set
# CONFIG_THUNDER_NIC_VF is not set
# CONFIG_THUNDER_NIC_BGX is not set
# CONFIG_THUNDER_NIC_RGX is not set
# CONFIG_CAVIUM_PTP is not set
# CONFIG_LIQUIDIO is not set
# CONFIG_LIQUIDIO_VF is not set
CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_CHELSIO_T4 is not set
# CONFIG_CHELSIO_T4VF is not set
CONFIG_NET_VENDOR_CISCO=y
# CONFIG_ENIC is not set
CONFIG_NET_VENDOR_CORTINA=y
CONFIG_NET_VENDOR_DAVICOM=y
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_TULIP=y
# CONFIG_DE2104X is not set
# CONFIG_TULIP is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_DM9102 is not set
# CONFIG_ULI526X is not set
# CONFIG_PCMCIA_XIRCOM is not set
CONFIG_NET_VENDOR_DLINK=y
# CONFIG_DL2K is not set
# CONFIG_SUNDANCE is not set
CONFIG_NET_VENDOR_EMULEX=y
# CONFIG_BE2NET is not set
CONFIG_NET_VENDOR_ENGLEDER=y
# CONFIG_TSNEP is not set
CONFIG_NET_VENDOR_EZCHIP=y
CONFIG_NET_VENDOR_FUNGIBLE=y
# CONFIG_FUN_ETH is not set
CONFIG_NET_VENDOR_GOOGLE=y
# CONFIG_GVE is not set
CONFIG_NET_VENDOR_HISILICON=y
# CONFIG_HIBMCGE is not set
CONFIG_NET_VENDOR_HUAWEI=y
# CONFIG_HINIC is not set
# CONFIG_HINIC3 is not set
CONFIG_NET_VENDOR_I825XX=y
CONFIG_NET_VENDOR_INTEL=y
CONFIG_E100=y
CONFIG_E1000=y
CONFIG_E1000E=y
CONFIG_E1000E_HWTS=y
# CONFIG_IGB is not set
# CONFIG_IGBVF is not set
# CONFIG_IXGBE is not set
# CONFIG_IXGBEVF is not set
# CONFIG_I40E is not set
# CONFIG_I40EVF is not set
# CONFIG_ICE is not set
# CONFIG_FM10K is not set
# CONFIG_IGC is not set
# CONFIG_IDPF is not set
# CONFIG_JME is not set
CONFIG_NET_VENDOR_LITEX=y
CONFIG_NET_VENDOR_MARVELL=y
# CONFIG_MVMDIO is not set
# CONFIG_SKGE is not set
CONFIG_SKY2=y
# CONFIG_SKY2_DEBUG is not set
# CONFIG_OCTEON_EP is not set
# CONFIG_OCTEON_EP_VF is not set
CONFIG_NET_VENDOR_MELLANOX=y
# CONFIG_MLX4_EN is not set
# CONFIG_MLX5_CORE is not set
# CONFIG_MLXSW_CORE is not set
# CONFIG_MLXFW is not set
CONFIG_NET_VENDOR_META=y
# CONFIG_FBNIC is not set
CONFIG_NET_VENDOR_MICREL=y
# CONFIG_KS8842 is not set
# CONFIG_KS8851_MLL is not set
# CONFIG_KSZ884X_PCI is not set
CONFIG_NET_VENDOR_MICROCHIP=y
# CONFIG_LAN743X is not set
# CONFIG_VCAP is not set
CONFIG_NET_VENDOR_MICROSEMI=y
CONFIG_NET_VENDOR_MICROSOFT=y
CONFIG_NET_VENDOR_MUCSE=y
# CONFIG_MGBE is not set
CONFIG_NET_VENDOR_MYRI=y
# CONFIG_MYRI10GE is not set
# CONFIG_FEALNX is not set
CONFIG_NET_VENDOR_NI=y
# CONFIG_NI_XGE_MANAGEMENT_ENET is not set
CONFIG_NET_VENDOR_NATSEMI=y
# CONFIG_NATSEMI is not set
# CONFIG_NS83820 is not set
CONFIG_NET_VENDOR_NETRONOME=y
# CONFIG_NFP is not set
CONFIG_NET_VENDOR_8390=y
# CONFIG_NE2K_PCI is not set
# CONFIG_PCMCIA_PCNET is not set
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_FORCEDETH=y
CONFIG_NET_VENDOR_OKI=y
# CONFIG_ETHOC is not set
CONFIG_NET_VENDOR_PENSANDO=y
# CONFIG_IONIC is not set
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_QLA3XXX is not set
# CONFIG_QLCNIC is not set
# CONFIG_NETXEN_NIC is not set
# CONFIG_QED is not set
CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_BNA is not set
CONFIG_NET_VENDOR_QUALCOMM=y
# CONFIG_QCOM_EMAC is not set
# CONFIG_RMNET is not set
CONFIG_NET_VENDOR_RDC=y
# CONFIG_R6040 is not set
CONFIG_NET_VENDOR_REALTEK=y
# CONFIG_8139CP is not set
CONFIG_8139TOO=y
CONFIG_8139TOO_PIO=y
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139_OLD_RX_RESET is not set
CONFIG_R8169=y
# CONFIG_RTASE is not set
CONFIG_NET_VENDOR_RENESAS=y
CONFIG_NET_VENDOR_ROCKER=y
CONFIG_NET_VENDOR_SAMSUNG=y
# CONFIG_SXGBE_ETH is not set
CONFIG_NET_VENDOR_SEEQ=y
CONFIG_NET_VENDOR_SILAN=y
# CONFIG_SC92031 is not set
CONFIG_NET_VENDOR_SIS=y
# CONFIG_SIS900 is not set
# CONFIG_SIS190 is not set
CONFIG_NET_VENDOR_SOLARFLARE=y
# CONFIG_SFC is not set
# CONFIG_SFC_FALCON is not set
# CONFIG_SFC_SIENA is not set
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_EPIC100 is not set
# CONFIG_SMSC911X is not set
# CONFIG_SMSC9420 is not set
CONFIG_NET_VENDOR_SOCIONEXT=y
CONFIG_NET_VENDOR_STMICRO=y
# CONFIG_STMMAC_ETH is not set
CONFIG_NET_VENDOR_SUN=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NIU is not set
CONFIG_NET_VENDOR_SYNOPSYS=y
# CONFIG_DWC_XLGMAC is not set
CONFIG_NET_VENDOR_TEHUTI=y
# CONFIG_TEHUTI is not set
# CONFIG_TEHUTI_TN40 is not set
CONFIG_NET_VENDOR_TI=y
# CONFIG_TI_CPSW_PHY_SEL is not set
# CONFIG_TLAN is not set
CONFIG_NET_VENDOR_VERTEXCOM=y
CONFIG_NET_VENDOR_VIA=y
# CONFIG_VIA_RHINE is not set
# CONFIG_VIA_VELOCITY is not set
CONFIG_NET_VENDOR_WANGXUN=y
# CONFIG_NGBE is not set
# CONFIG_TXGBEVF is not set
# CONFIG_NGBEVF is not set
CONFIG_NET_VENDOR_WIZNET=y
CONFIG_NET_VENDOR_XILINX=y
# CONFIG_XILINX_EMACLITE is not set
# CONFIG_XILINX_LL_TEMAC is not set
CONFIG_NET_VENDOR_XIRCOM=y
# CONFIG_PCMCIA_XIRC2PS is not set
# CONFIG_FDDI is not set
CONFIG_PHYLIB=y
CONFIG_SWPHY=y
CONFIG_PHY_PACKAGE=y
# CONFIG_LED_TRIGGER_PHY is not set
CONFIG_FIXED_PHY=y

#
# MII PHY device drivers
#
# CONFIG_AS21XXX_PHY is not set
# CONFIG_AIR_AN8801_PHY is not set
# CONFIG_AIR_EN8811H_PHY is not set
# CONFIG_AMD_PHY is not set
# CONFIG_ADIN_PHY is not set
# CONFIG_ADIN1100_PHY is not set
# CONFIG_AQUANTIA_PHY is not set
# CONFIG_AX88796B_PHY is not set
# CONFIG_BROADCOM_PHY is not set
# CONFIG_BCM54140_PHY is not set
# CONFIG_BCM7XXX_PHY is not set
# CONFIG_BCM84881_PHY is not set
# CONFIG_BCM87XX_PHY is not set
# CONFIG_CICADA_PHY is not set
# CONFIG_CORTINA_PHY is not set
# CONFIG_DAVICOM_PHY is not set
# CONFIG_ICPLUS_PHY is not set
# CONFIG_LXT_PHY is not set
# CONFIG_INTEL_XWAY_PHY is not set
# CONFIG_LSI_ET1011C_PHY is not set
# CONFIG_MARVELL_PHY is not set
# CONFIG_MARVELL_10G_PHY is not set
# CONFIG_MARVELL_88Q2XXX_PHY is not set
# CONFIG_MARVELL_88X2222_PHY is not set
# CONFIG_MAXLINEAR_GPHY is not set
# CONFIG_MAXLINEAR_86110_PHY is not set
# CONFIG_MEDIATEK_GE_PHY is not set
# CONFIG_MICREL_PHY is not set
# CONFIG_MICROCHIP_T1S_PHY is not set
# CONFIG_MICROCHIP_PHY is not set
# CONFIG_MICROCHIP_T1_PHY is not set
# CONFIG_MICROSEMI_PHY is not set
# CONFIG_MOTORCOMM_PHY is not set
# CONFIG_NATIONAL_PHY is not set
# CONFIG_NXP_CBTX_PHY is not set
# CONFIG_NXP_C45_TJA11XX_PHY is not set
# CONFIG_NXP_TJA11XX_PHY is not set
# CONFIG_NCN26000_PHY is not set
# CONFIG_QCA83XX_PHY is not set
# CONFIG_QCA808X_PHY is not set
# CONFIG_QSEMI_PHY is not set
CONFIG_REALTEK_PHY=y
# CONFIG_REALTEK_PHY_HWMON is not set
# CONFIG_RENESAS_PHY is not set
# CONFIG_ROCKCHIP_PHY is not set
# CONFIG_SMSC_PHY is not set
# CONFIG_STE10XP is not set
# CONFIG_TERANETICS_PHY is not set
# CONFIG_DP83822_PHY is not set
# CONFIG_DP83TC811_PHY is not set
# CONFIG_DP83848_PHY is not set
# CONFIG_DP83867_PHY is not set
# CONFIG_DP83869_PHY is not set
# CONFIG_DP83TD510_PHY is not set
# CONFIG_DP83TG720_PHY is not set
# CONFIG_VITESSE_PHY is not set
# CONFIG_XILINX_GMII2RGMII is not set
CONFIG_FWNODE_MDIO=y
CONFIG_ACPI_MDIO=y
# CONFIG_MDIO_BITBANG is not set
# CONFIG_MDIO_BCM_UNIMAC is not set
# CONFIG_MDIO_MVUSB is not set
# CONFIG_MDIO_THUNDER is not set

#
# MDIO Multiplexers
#

#
# PCS device drivers
#
# CONFIG_PCS_XPCS is not set
# end of PCS device drivers

# CONFIG_PPP is not set
# CONFIG_SLIP is not set
CONFIG_USB_NET_DRIVERS=y
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_RTL8152 is not set
# CONFIG_USB_LAN78XX is not set
# CONFIG_USB_USBNET is not set
# CONFIG_USB_HSO is not set
# CONFIG_USB_IPHETH is not set
CONFIG_WLAN=y
CONFIG_WLAN_VENDOR_ADMTEK=y
# CONFIG_ADM8211 is not set
CONFIG_WLAN_VENDOR_ATH=y
# CONFIG_ATH_DEBUG is not set
# CONFIG_ATH5K is not set
# CONFIG_ATH5K_PCI is not set
# CONFIG_ATH9K is not set
# CONFIG_ATH9K_HTC is not set
# CONFIG_CARL9170 is not set
# CONFIG_ATH6KL is not set
# CONFIG_AR5523 is not set
# CONFIG_WIL6210 is not set
# CONFIG_ATH10K is not set
# CONFIG_WCN36XX is not set
# CONFIG_ATH11K is not set
# CONFIG_ATH12K is not set
CONFIG_WLAN_VENDOR_ATMEL=y
# CONFIG_AT76C50X_USB is not set
CONFIG_WLAN_VENDOR_BROADCOM=y
# CONFIG_B43 is not set
# CONFIG_B43LEGACY is not set
# CONFIG_BRCMSMAC is not set
# CONFIG_BRCMFMAC is not set
CONFIG_WLAN_VENDOR_INTEL=y
# CONFIG_IPW2100 is not set
# CONFIG_IPW2200 is not set
# CONFIG_IWL4965 is not set
# CONFIG_IWL3945 is not set
# CONFIG_IWLWIFI is not set
CONFIG_WLAN_VENDOR_INTERSIL=y
# CONFIG_P54_COMMON is not set
CONFIG_WLAN_VENDOR_MARVELL=y
# CONFIG_LIBERTAS is not set
# CONFIG_LIBERTAS_THINFIRM is not set
# CONFIG_MWIFIEX is not set
# CONFIG_MWL8K is not set
CONFIG_WLAN_VENDOR_MEDIATEK=y
# CONFIG_MT7601U is not set
# CONFIG_MT76x0U is not set
# CONFIG_MT76x0E is not set
# CONFIG_MT76x2E is not set
# CONFIG_MT76x2U is not set
# CONFIG_MT7603E is not set
# CONFIG_MT7615E is not set
# CONFIG_MT7663U is not set
# CONFIG_MT7915E is not set
# CONFIG_MT7921E is not set
# CONFIG_MT7921U is not set
# CONFIG_MT7996E is not set
# CONFIG_MT7925E is not set
# CONFIG_MT7925U is not set
CONFIG_WLAN_VENDOR_MICROCHIP=y
CONFIG_WLAN_VENDOR_PURELIFI=y
# CONFIG_PLFXLC is not set
CONFIG_WLAN_VENDOR_RALINK=y
# CONFIG_RT2X00 is not set
CONFIG_WLAN_VENDOR_REALTEK=y
# CONFIG_RTL8180 is not set
# CONFIG_RTL8187 is not set
CONFIG_RTL_CARDS=y
# CONFIG_RTL8192CE is not set
# CONFIG_RTL8192SE is not set
# CONFIG_RTL8192DE is not set
# CONFIG_RTL8723AE is not set
# CONFIG_RTL8723BE is not set
# CONFIG_RTL8188EE is not set
# CONFIG_RTL8192EE is not set
# CONFIG_RTL8821AE is not set
# CONFIG_RTL8192CU is not set
# CONFIG_RTL8192DU is not set
# CONFIG_RTL8XXXU is not set
# CONFIG_RTW88 is not set
# CONFIG_RTW89 is not set
CONFIG_WLAN_VENDOR_RSI=y
# CONFIG_RSI_91X is not set
CONFIG_WLAN_VENDOR_SILABS=y
CONFIG_WLAN_VENDOR_ST=y
# CONFIG_CW1200 is not set
CONFIG_WLAN_VENDOR_TI=y
# CONFIG_WL1251 is not set
# CONFIG_WL12XX is not set
# CONFIG_WL18XX is not set
# CONFIG_WLCORE is not set
CONFIG_WLAN_VENDOR_ZYDAS=y
# CONFIG_ZD1211RW is not set
CONFIG_WLAN_VENDOR_QUANTENNA=y
# CONFIG_QTNFMAC_PCIE is not set
# CONFIG_MAC80211_HWSIM is not set
# CONFIG_VIRT_WIFI is not set
# CONFIG_WAN is not set

#
# Wireless WAN
#
# CONFIG_WWAN is not set
# end of Wireless WAN

# CONFIG_VMXNET3 is not set
# CONFIG_FUJITSU_ES is not set
# CONFIG_NETDEVSIM is not set
CONFIG_NET_FAILOVER=y

#
# Input device support
#
CONFIG_INPUT=y
CONFIG_INPUT_LEDS=y
CONFIG_INPUT_FF_MEMLESS=y
CONFIG_INPUT_SPARSEKMAP=y
# CONFIG_INPUT_MATRIXKMAP is not set
CONFIG_INPUT_VIVALDIFMAP=y

#
# Userland interfaces
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=y

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADP5588 is not set
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_QT1050 is not set
# CONFIG_KEYBOARD_QT1070 is not set
# CONFIG_KEYBOARD_QT2160 is not set
# CONFIG_KEYBOARD_DLINK_DIR685 is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_TCA8418 is not set
# CONFIG_KEYBOARD_LM8323 is not set
# CONFIG_KEYBOARD_LM8333 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_MPR121 is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_CYPRESS_SF is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_BYD=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
CONFIG_MOUSE_PS2_CYPRESS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_SENTELIC is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
CONFIG_MOUSE_PS2_FOCALTECH=y
# CONFIG_MOUSE_PS2_VMMOUSE is not set
CONFIG_MOUSE_PS2_SMBUS=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_BCM5974 is not set
# CONFIG_MOUSE_CYAPA is not set
# CONFIG_MOUSE_ELAN_I2C is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_MOUSE_SYNAPTICS_I2C is not set
# CONFIG_MOUSE_SYNAPTICS_USB is not set
CONFIG_INPUT_JOYSTICK=y
# CONFIG_JOYSTICK_ANALOG is not set
# CONFIG_JOYSTICK_A3D is not set
# CONFIG_JOYSTICK_ADI is not set
# CONFIG_JOYSTICK_COBRA is not set
# CONFIG_JOYSTICK_GF2K is not set
# CONFIG_JOYSTICK_GRIP is not set
# CONFIG_JOYSTICK_GRIP_MP is not set
# CONFIG_JOYSTICK_GUILLEMOT is not set
# CONFIG_JOYSTICK_INTERACT is not set
# CONFIG_JOYSTICK_SIDEWINDER is not set
# CONFIG_JOYSTICK_TMDC is not set
# CONFIG_JOYSTICK_IFORCE is not set
# CONFIG_JOYSTICK_WARRIOR is not set
# CONFIG_JOYSTICK_MAGELLAN is not set
# CONFIG_JOYSTICK_SPACEORB is not set
# CONFIG_JOYSTICK_SPACEBALL is not set
# CONFIG_JOYSTICK_STINGER is not set
# CONFIG_JOYSTICK_TWIDJOY is not set
# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JOYSTICK_AS5011 is not set
# CONFIG_JOYSTICK_JOYDUMP is not set
# CONFIG_JOYSTICK_XPAD is not set
# CONFIG_JOYSTICK_PXRC is not set
# CONFIG_JOYSTICK_QWIIC is not set
# CONFIG_JOYSTICK_FSIA6B is not set
# CONFIG_JOYSTICK_SENSEHAT is not set
# CONFIG_JOYSTICK_SEESAW is not set
CONFIG_INPUT_TABLET=y
# CONFIG_TABLET_USB_ACECAD is not set
# CONFIG_TABLET_USB_AIPTEK is not set
# CONFIG_TABLET_USB_HANWANG is not set
# CONFIG_TABLET_USB_KBTAB is not set
# CONFIG_TABLET_USB_PEGASUS is not set
# CONFIG_TABLET_SERIAL_WACOM4 is not set
CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_AD7879 is not set
# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
# CONFIG_TOUCHSCREEN_BU21013 is not set
# CONFIG_TOUCHSCREEN_BU21029 is not set
# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set
# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set
# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
# CONFIG_TOUCHSCREEN_CYTTSP5 is not set
# CONFIG_TOUCHSCREEN_DYNAPRO is not set
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_EETI is not set
# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
# CONFIG_TOUCHSCREEN_EXC3000 is not set
# CONFIG_TOUCHSCREEN_FUJITSU is not set
# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_I2C is not set
# CONFIG_TOUCHSCREEN_HIDEEP is not set
# CONFIG_TOUCHSCREEN_HIMAX_HX852X is not set
# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set
# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set
# CONFIG_TOUCHSCREEN_HYNITRON_CST816X is not set
# CONFIG_TOUCHSCREEN_ILI210X is not set
# CONFIG_TOUCHSCREEN_ILITEK is not set
# CONFIG_TOUCHSCREEN_S6SY761 is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_EKTF2127 is not set
# CONFIG_TOUCHSCREEN_ELAN is not set
# CONFIG_TOUCHSCREEN_ELO is not set
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
# CONFIG_TOUCHSCREEN_MAX11801 is not set
# CONFIG_TOUCHSCREEN_MMS114 is not set
# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
# CONFIG_TOUCHSCREEN_MTOUCH is not set
# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set
# CONFIG_TOUCHSCREEN_IMAGIS is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_PIXCIR is not set
# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
# CONFIG_TOUCHSCREEN_TSC_SERIO is not set
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2007 is not set
# CONFIG_TOUCHSCREEN_SILEAD is not set
# CONFIG_TOUCHSCREEN_ST1232 is not set
# CONFIG_TOUCHSCREEN_STMFTS is not set
# CONFIG_TOUCHSCREEN_SX8654 is not set
# CONFIG_TOUCHSCREEN_TPS6507X is not set
# CONFIG_TOUCHSCREEN_ZET6223 is not set
# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
# CONFIG_TOUCHSCREEN_IQS5XX is not set
# CONFIG_TOUCHSCREEN_IQS7211 is not set
# CONFIG_TOUCHSCREEN_ZINITIX is not set
# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set
CONFIG_INPUT_MISC=y
# CONFIG_INPUT_AD714X is not set
# CONFIG_INPUT_AW86927 is not set
# CONFIG_INPUT_BMA150 is not set
# CONFIG_INPUT_E3X0_BUTTON is not set
# CONFIG_INPUT_PCSPKR is not set
# CONFIG_INPUT_MMA8450 is not set
# CONFIG_INPUT_APANEL is not set
# CONFIG_INPUT_ATLAS_BTNS is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_KXTJ9 is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
# CONFIG_INPUT_CM109 is not set
# CONFIG_INPUT_UINPUT is not set
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_DA7280_HAPTICS is not set
# CONFIG_INPUT_ADXL34X is not set
# CONFIG_INPUT_IMS_PCU is not set
# CONFIG_INPUT_IQS269A is not set
# CONFIG_INPUT_IQS626A is not set
# CONFIG_INPUT_IQS7222 is not set
# CONFIG_INPUT_CMA3000 is not set
# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set
# CONFIG_INPUT_DRV2665_HAPTICS is not set
# CONFIG_INPUT_DRV2667_HAPTICS is not set
# CONFIG_RMI4_CORE is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_SERIO_ARC_PS2 is not set
# CONFIG_USERIO is not set
# CONFIG_GAMEPORT is not set
# end of Hardware I/O ports
# end of Input device support

#
# Character devices
#
CONFIG_TTY=y
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_LEGACY_TIOCSTI=y
CONFIG_LDISC_AUTOLOAD=y

#
# Serial drivers
#
CONFIG_SERIAL_EARLYCON=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_PNP=y
# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
# CONFIG_SERIAL_8250_FINTEK is not set
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_DMA=y
CONFIG_SERIAL_8250_PCILIB=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_EXAR=y
# CONFIG_SERIAL_8250_CS is not set
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_DETECT_IRQ=y
CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_8250_MANY_PORTS=y
# CONFIG_SERIAL_8250_PCI1XXXX is not set
# CONFIG_SERIAL_8250_DW is not set
# CONFIG_SERIAL_8250_RT288X is not set
CONFIG_SERIAL_8250_LPSS=y
CONFIG_SERIAL_8250_MID=y
CONFIG_SERIAL_8250_PERICOM=y
# CONFIG_SERIAL_8250_NI is not set
CONFIG_SERIAL_8250_DWLIB=y

#
# Non-8250 serial port support
#
# CONFIG_SERIAL_MAX310X is not set
# CONFIG_SERIAL_UARTLITE is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
# CONFIG_SERIAL_LANTIQ is not set
# CONFIG_SERIAL_SCCNXP is not set
# CONFIG_SERIAL_SC16IS7XX is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
# CONFIG_SERIAL_ARC is not set
# CONFIG_SERIAL_RP2 is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_FSL_LINFLEXUART is not set
# end of Serial drivers

CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
# CONFIG_N_HDLC is not set
# CONFIG_IPWIRELESS is not set
# CONFIG_N_GSM is not set
# CONFIG_NOZOMI is not set
# CONFIG_NULL_TTY is not set
CONFIG_HVC_DRIVER=y
# CONFIG_SERIAL_DEV_BUS is not set
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_IPMI_HANDLER is not set
CONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
# CONFIG_HW_RANDOM_INTEL is not set
# CONFIG_HW_RANDOM_AMD is not set
# CONFIG_HW_RANDOM_BA431 is not set
CONFIG_HW_RANDOM_VIA=y
# CONFIG_HW_RANDOM_VIRTIO is not set
# CONFIG_HW_RANDOM_XIPHERA is not set
CONFIG_DEVMEM=y
CONFIG_NVRAM=y
CONFIG_DEVPORT=y
CONFIG_HPET=y
# CONFIG_HPET_MMAP is not set
# CONFIG_HANGCHECK_TIMER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
# CONFIG_XILLYBUS is not set
# CONFIG_XILLYUSB is not set
# end of Character devices

#
# I2C support
#
CONFIG_I2C=y
CONFIG_ACPI_I2C_OPREGION=y
CONFIG_I2C_BOARDINFO=y
# CONFIG_I2C_CHARDEV is not set
# CONFIG_I2C_MUX is not set
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=y
CONFIG_I2C_ALGOBIT=y

#
# I2C Hardware Bus support
#

#
# PC SMBus host controller drivers
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_AMD_MP2 is not set
CONFIG_I2C_I801=y
# CONFIG_I2C_ISCH is not set
# CONFIG_I2C_ISMT is not set
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_NVIDIA_GPU is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_ZHAOXIN is not set

#
# ACPI drivers
#
# CONFIG_I2C_SCMI is not set

#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_DESIGNWARE_CORE is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_XILINX is not set

#
# External I2C/SMBus adapter drivers
#
# CONFIG_I2C_DIOLAN_U2C is not set
# CONFIG_I2C_CP2615 is not set
# CONFIG_I2C_PCI1XXXX is not set
# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_TINY_USB is not set

#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_MLXCPLD is not set
# CONFIG_I2C_VIRTIO is not set
# end of I2C Hardware Bus support

# CONFIG_I2C_STUB is not set
# CONFIG_I2C_SLAVE is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# end of I2C support

# CONFIG_I3C is not set
CONFIG_I3C_OR_I2C=y
# CONFIG_SPI is not set
# CONFIG_SPMI is not set
# CONFIG_HSI is not set
CONFIG_PPS=y
# CONFIG_PPS_DEBUG is not set

#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not set
# CONFIG_PPS_CLIENT_LDISC is not set
# CONFIG_PPS_CLIENT_GPIO is not set
# CONFIG_PPS_GENERATOR is not set

#
# PTP clock support
#
CONFIG_PTP_1588_CLOCK=y
CONFIG_PTP_1588_CLOCK_OPTIONAL=y

#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
#
CONFIG_PTP_1588_CLOCK_KVM=y
CONFIG_PTP_1588_CLOCK_VMCLOCK=y
# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set
# CONFIG_PTP_1588_CLOCK_IDTCM is not set
# CONFIG_PTP_1588_CLOCK_FC3W is not set
# CONFIG_PTP_1588_CLOCK_MOCK is not set
# CONFIG_PTP_1588_CLOCK_VMW is not set
# CONFIG_PTP_NETC_V4_TIMER is not set
# end of PTP clock support

#
# DPLL device support
#
# CONFIG_ZL3073X_I2C is not set
# end of DPLL device support

# CONFIG_PINCTRL is not set
CONFIG_GPIOLIB_LEGACY=y
# CONFIG_GPIOLIB is not set
# CONFIG_W1 is not set
# CONFIG_POWER_RESET is not set
CONFIG_POWER_SEQUENCING=y
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_POWER_SUPPLY_HWMON=y
# CONFIG_IP5XXX_POWER is not set
# CONFIG_TEST_POWER is not set
# CONFIG_CHARGER_ADP5061 is not set
# CONFIG_BATTERY_CHAGALL is not set
# CONFIG_BATTERY_CW2015 is not set
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_SAMSUNG_SDI is not set
# CONFIG_BATTERY_S2MU005 is not set
# CONFIG_BATTERY_SBS is not set
# CONFIG_CHARGER_SBS is not set
# CONFIG_BATTERY_BQ27XXX is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_MAX1720X is not set
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_LTC4162L is not set
# CONFIG_CHARGER_MAX77976 is not set
# CONFIG_CHARGER_MAX8971 is not set
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
# CONFIG_BATTERY_GOLDFISH is not set
# CONFIG_BATTERY_RT5033 is not set
# CONFIG_CHARGER_RT9756 is not set
# CONFIG_CHARGER_BD99954 is not set
# CONFIG_BATTERY_UG3105 is not set
# CONFIG_FUEL_GAUGE_MM8013 is not set
CONFIG_HWMON=y
# CONFIG_HWMON_DEBUG_CHIP is not set

#
# Native drivers
#
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ABITUGURU3 is not set
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM1177 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ADT7410 is not set
# CONFIG_SENSORS_ADT7411 is not set
# CONFIG_SENSORS_ADT7462 is not set
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ADT7475 is not set
# CONFIG_SENSORS_AHT10 is not set
# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set
# CONFIG_SENSORS_AS370 is not set
# CONFIG_SENSORS_ASC7621 is not set
# CONFIG_SENSORS_ASUS_ROG_RYUJIN is not set
# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
# CONFIG_SENSORS_K8TEMP is not set
# CONFIG_SENSORS_K10TEMP is not set
# CONFIG_SENSORS_FAM15H_POWER is not set
# CONFIG_SENSORS_APPLESMC is not set
# CONFIG_SENSORS_ARCTIC_FAN_CONTROLLER is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_CHIPCAP2 is not set
# CONFIG_SENSORS_CORSAIR_CPRO is not set
# CONFIG_SENSORS_CORSAIR_PSU is not set
# CONFIG_SENSORS_DRIVETEMP is not set
# CONFIG_SENSORS_DS620 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_DELL_SMM is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_FSCHMD is not set
# CONFIG_SENSORS_FTSTEUTATES is not set
# CONFIG_SENSORS_GIGABYTE_WATERFORCE is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_GPD is not set
# CONFIG_SENSORS_G760A is not set
# CONFIG_SENSORS_G762 is not set
# CONFIG_SENSORS_HIH6130 is not set
# CONFIG_SENSORS_HS3001 is not set
# CONFIG_SENSORS_HTU31 is not set
# CONFIG_SENSORS_I5500 is not set
# CONFIG_SENSORS_CORETEMP is not set
# CONFIG_SENSORS_ISL28022 is not set
# CONFIG_SENSORS_IT87 is not set
# CONFIG_SENSORS_JC42 is not set
# CONFIG_SENSORS_POWERZ is not set
# CONFIG_SENSORS_POWR1220 is not set
# CONFIG_SENSORS_PROM21_XHCI is not set
# CONFIG_SENSORS_LATTEPANDA_SIGMA_EC is not set
# CONFIG_SENSORS_LENOVO_EC is not set
# CONFIG_SENSORS_LINEAGE is not set
# CONFIG_SENSORS_LTC2945 is not set
# CONFIG_SENSORS_LTC2947_I2C is not set
# CONFIG_SENSORS_LTC2990 is not set
# CONFIG_SENSORS_LTC2991 is not set
# CONFIG_SENSORS_LTC4151 is not set
# CONFIG_SENSORS_LTC4215 is not set
# CONFIG_SENSORS_LTC4222 is not set
# CONFIG_SENSORS_LTC4245 is not set
# CONFIG_SENSORS_LTC4260 is not set
# CONFIG_SENSORS_LTC4261 is not set
# CONFIG_SENSORS_LTC4282 is not set
# CONFIG_SENSORS_LTC4283 is not set
# CONFIG_SENSORS_MAX127 is not set
# CONFIG_SENSORS_MAX16065 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_MAX1668 is not set
# CONFIG_SENSORS_MAX197 is not set
# CONFIG_SENSORS_MAX31730 is not set
# CONFIG_SENSORS_MAX31760 is not set
# CONFIG_MAX31827 is not set
# CONFIG_SENSORS_MAX6620 is not set
# CONFIG_SENSORS_MAX6621 is not set
# CONFIG_SENSORS_MAX6639 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_MAX6697 is not set
# CONFIG_SENSORS_MAX31790 is not set
# CONFIG_SENSORS_MC34VR500 is not set
# CONFIG_SENSORS_MCP3021 is not set
# CONFIG_SENSORS_MCP9982 is not set
# CONFIG_SENSORS_TC654 is not set
# CONFIG_SENSORS_TPS23861 is not set
# CONFIG_SENSORS_MR75203 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM73 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_LM95234 is not set
# CONFIG_SENSORS_LM95241 is not set
# CONFIG_SENSORS_LM95245 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_NCT6683 is not set
# CONFIG_SENSORS_NCT6775 is not set
# CONFIG_SENSORS_NCT6775_I2C is not set
# CONFIG_SENSORS_NCT7363 is not set
# CONFIG_SENSORS_NCT7802 is not set
# CONFIG_SENSORS_NCT7904 is not set
# CONFIG_SENSORS_NPCM7XX is not set
# CONFIG_SENSORS_NZXT_KRAKEN2 is not set
# CONFIG_SENSORS_NZXT_KRAKEN3 is not set
# CONFIG_SENSORS_NZXT_SMART2 is not set
# CONFIG_SENSORS_OCC_P8_I2C is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_PMBUS is not set
# CONFIG_SENSORS_PT5161L is not set
# CONFIG_SENSORS_SBTSI is not set
# CONFIG_SENSORS_SHT21 is not set
# CONFIG_SENSORS_SHT3x is not set
# CONFIG_SENSORS_SHT4x is not set
# CONFIG_SENSORS_SHTC1 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_DME1737 is not set
# CONFIG_SENSORS_EMC1403 is not set
# CONFIG_SENSORS_EMC1812 is not set
# CONFIG_SENSORS_EMC2103 is not set
# CONFIG_SENSORS_EMC2305 is not set
# CONFIG_SENSORS_EMC6W201 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_SCH5627 is not set
# CONFIG_SENSORS_SCH5636 is not set
# CONFIG_SENSORS_STTS751 is not set
# CONFIG_SENSORS_ADC128D818 is not set
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_AMC6821 is not set
# CONFIG_SENSORS_INA209 is not set
# CONFIG_SENSORS_INA2XX is not set
# CONFIG_SENSORS_INA238 is not set
# CONFIG_SENSORS_INA3221 is not set
# CONFIG_SENSORS_SPD5118 is not set
# CONFIG_SENSORS_TC74 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP102 is not set
# CONFIG_SENSORS_TMP103 is not set
# CONFIG_SENSORS_TMP108 is not set
# CONFIG_SENSORS_TMP401 is not set
# CONFIG_SENSORS_TMP421 is not set
# CONFIG_SENSORS_TMP464 is not set
# CONFIG_SENSORS_TMP513 is not set
# CONFIG_SENSORS_TSC1641 is not set
# CONFIG_SENSORS_VIA_CPUTEMP is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83773G is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
# CONFIG_SENSORS_W83795 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83L786NG is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_XGENE is not set
# CONFIG_SENSORS_YOGAFAN is not set

#
# ACPI drivers
#
# CONFIG_SENSORS_ACPI_POWER is not set
# CONFIG_SENSORS_ATK0110 is not set
# CONFIG_SENSORS_ASUS_WMI is not set
# CONFIG_SENSORS_ASUS_EC is not set
# CONFIG_SENSORS_HP_WMI is not set
CONFIG_THERMAL=y
CONFIG_THERMAL_NETLINK=y
# CONFIG_THERMAL_STATISTICS is not set
# CONFIG_THERMAL_DEBUGFS is not set
# CONFIG_THERMAL_CORE_TESTING is not set
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
CONFIG_THERMAL_HWMON=y
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
CONFIG_THERMAL_GOV_STEP_WISE=y
# CONFIG_THERMAL_GOV_BANG_BANG is not set
# CONFIG_THERMAL_GOV_USER_SPACE is not set
# CONFIG_PCIE_THERMAL is not set
# CONFIG_THERMAL_EMULATION is not set

#
# Intel thermal drivers
#
# CONFIG_INTEL_POWERCLAMP is not set
CONFIG_X86_THERMAL_VECTOR=y
CONFIG_INTEL_TCC=y
CONFIG_X86_PKG_TEMP_THERMAL=m
# CONFIG_INTEL_SOC_DTS_THERMAL is not set

#
# ACPI INT340X thermal drivers
#
# CONFIG_INT340X_THERMAL is not set
# end of ACPI INT340X thermal drivers

# CONFIG_INTEL_PCH_THERMAL is not set
# CONFIG_INTEL_TCC_COOLING is not set
# CONFIG_INTEL_HFI_THERMAL is not set
# end of Intel thermal drivers

CONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_CORE is not set
# CONFIG_WATCHDOG_NOWAYOUT is not set
CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
CONFIG_WATCHDOG_OPEN_TIMEOUT=0
# CONFIG_WATCHDOG_SYSFS is not set
# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set

#
# Watchdog Pretimeout Governors
#

#
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
# CONFIG_LENOVO_SE10_WDT is not set
# CONFIG_LENOVO_SE30_WDT is not set
# CONFIG_WDAT_WDT is not set
# CONFIG_XILINX_WATCHDOG is not set
# CONFIG_ZIIRAVE_WATCHDOG is not set
# CONFIG_CADENCE_WATCHDOG is not set
# CONFIG_DW_WATCHDOG is not set
# CONFIG_MAX63XX_WATCHDOG is not set
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not set
# CONFIG_ADVANTECH_EC_WDT is not set
# CONFIG_ALIM1535_WDT is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_EBC_C384_WDT is not set
# CONFIG_EXAR_WDT is not set
# CONFIG_F71808E_WDT is not set
# CONFIG_SP5100_TCO is not set
# CONFIG_SBC_FITPC2_WATCHDOG is not set
# CONFIG_EUROTECH_WDT is not set
# CONFIG_IB700_WDT is not set
# CONFIG_IBMASR is not set
# CONFIG_WAFER_WDT is not set
# CONFIG_I6300ESB_WDT is not set
# CONFIG_IE6XX_WDT is not set
# CONFIG_INTEL_OC_WATCHDOG is not set
# CONFIG_ITCO_WDT is not set
# CONFIG_IT8712F_WDT is not set
# CONFIG_IT87_WDT is not set
# CONFIG_HP_WATCHDOG is not set
# CONFIG_SC1200_WDT is not set
# CONFIG_PC87413_WDT is not set
# CONFIG_NV_TCO is not set
# CONFIG_60XX_WDT is not set
# CONFIG_SMSC_SCH311X_WDT is not set
# CONFIG_SMSC37B787_WDT is not set
# CONFIG_TQMX86_WDT is not set
# CONFIG_VIA_WDT is not set
# CONFIG_W83627HF_WDT is not set
# CONFIG_W83877F_WDT is not set
# CONFIG_W83977F_WDT is not set
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
# CONFIG_INTEL_MEI_WDT is not set
# CONFIG_NI903X_WDT is not set
# CONFIG_NIC7018_WDT is not set

#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set

#
# USB-based Watchdog Cards
#
# CONFIG_USBPCWATCHDOG is not set
CONFIG_SSB_POSSIBLE=y
# CONFIG_SSB is not set
CONFIG_BCMA_POSSIBLE=y
# CONFIG_BCMA is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_AS3711 is not set
# CONFIG_MFD_SMPRO is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_BCM590XX is not set
# CONFIG_MFD_BD9571MWV is not set
# CONFIG_MFD_AXP20X_I2C is not set
# CONFIG_MFD_CGBC is not set
# CONFIG_MFD_CS40L50_I2C is not set
# CONFIG_MFD_CS42L43_I2C is not set
# CONFIG_MFD_MADERA is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9055 is not set
# CONFIG_MFD_DA9062 is not set
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
# CONFIG_MFD_MC13XXX_I2C is not set
# CONFIG_MFD_MP2629 is not set
# CONFIG_LPC_ICH is not set
# CONFIG_LPC_SCH is not set
# CONFIG_MFD_INTEL_LPSS_ACPI is not set
# CONFIG_MFD_INTEL_LPSS_PCI is not set
# CONFIG_MFD_INTEL_PMC_BXT is not set
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
# CONFIG_MFD_88PM800 is not set
# CONFIG_MFD_88PM805 is not set
# CONFIG_MFD_88PM860X is not set
# CONFIG_MFD_MAX5970 is not set
# CONFIG_MFD_MAX14577 is not set
# CONFIG_MFD_MAX77541 is not set
# CONFIG_MFD_MAX77693 is not set
# CONFIG_MFD_MAX77705 is not set
# CONFIG_MFD_MAX77843 is not set
# CONFIG_MFD_MAX8907 is not set
# CONFIG_MFD_MAX8925 is not set
# CONFIG_MFD_MAX8997 is not set
# CONFIG_MFD_MAX8998 is not set
# CONFIG_MFD_MT6360 is not set
# CONFIG_MFD_MT6370 is not set
# CONFIG_MFD_MT6397 is not set
# CONFIG_MFD_MENF21BMC is not set
# CONFIG_MFD_NCT6694 is not set
# CONFIG_MFD_VIPERBOARD is not set
# CONFIG_MFD_RETU is not set
# CONFIG_MFD_SY7636A is not set
# CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RT4831 is not set
# CONFIG_MFD_RT5033 is not set
# CONFIG_MFD_RT5120 is not set
# CONFIG_MFD_RC5T583 is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_SKY81452 is not set
# CONFIG_MFD_SYSCON is not set
# CONFIG_MFD_LP3943 is not set
# CONFIG_MFD_LP8788 is not set
# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_BQ257XX is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_TPS6105X is not set
# CONFIG_TPS6507X is not set
# CONFIG_MFD_TPS65086 is not set
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TPS6586X is not set
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS6594_I2C is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
# CONFIG_MFD_LM3533 is not set
# CONFIG_MFD_TQMX86 is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM831X_I2C is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set
# CONFIG_MFD_ATC260X_I2C is not set
# CONFIG_MFD_UPBOARD_FPGA is not set
# CONFIG_MFD_MAX7360 is not set
# end of Multifunction device drivers

# CONFIG_REGULATOR is not set
# CONFIG_RC_CORE is not set

#
# CEC support
#
# CONFIG_MEDIA_CEC_SUPPORT is not set
# end of CEC support

# CONFIG_MEDIA_SUPPORT is not set

#
# Graphics support
#
CONFIG_APERTURE_HELPERS=y
CONFIG_SCREEN_INFO=y
CONFIG_VIDEO=y
# CONFIG_AUXDISPLAY is not set
CONFIG_AGP=y
CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_VIA is not set
CONFIG_INTEL_GTT=y
CONFIG_GPU_BUDDY=y
CONFIG_DRM=y

#
# DRM debugging options
#
# CONFIG_DRM_DEBUG_MM is not set
# end of DRM debugging options

CONFIG_DRM_MIPI_DSI=y
CONFIG_DRM_KMS_HELPER=y
# CONFIG_DRM_PANIC is not set
# CONFIG_DRM_RAS is not set
CONFIG_DRM_CLIENT_SELECTION=y

#
# Supported DRM clients
#
# CONFIG_DRM_FBDEV_EMULATION is not set
# CONFIG_DRM_CLIENT_LOG is not set
# end of Supported DRM clients

# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
CONFIG_DRM_DISPLAY_HELPER=y
# CONFIG_DRM_DISPLAY_DP_AUX_CEC is not set
# CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV is not set
CONFIG_DRM_DISPLAY_DP_HELPER=y
CONFIG_DRM_DISPLAY_DSC_HELPER=y
CONFIG_DRM_DISPLAY_HDCP_HELPER=y
CONFIG_DRM_DISPLAY_HDMI_HELPER=y
CONFIG_DRM_TTM=y
CONFIG_DRM_BUDDY=y
CONFIG_DRM_GEM_SHMEM_HELPER=y
# CONFIG_DRM_AMDGPU is not set

#
# ARM devices
#
# end of ARM devices

# CONFIG_DRM_AST is not set
CONFIG_DRM_BRIDGE=y
CONFIG_DRM_PANEL_BRIDGE=y

#
# Display Interface Bridges
#
# CONFIG_DRM_I2C_NXP_TDA998X is not set
# end of Display Interface Bridges

# CONFIG_DRM_ETNAVIV is not set
# CONFIG_DRM_GMA500 is not set
# CONFIG_DRM_GUD is not set
# CONFIG_DRM_HISI_HIBMC is not set
CONFIG_DRM_I915=y
CONFIG_DRM_I915_FORCE_PROBE=""
CONFIG_DRM_I915_CAPTURE_ERROR=y
CONFIG_DRM_I915_COMPRESS_ERROR=y
CONFIG_DRM_I915_USERPTR=y
CONFIG_DRM_I915_REQUEST_TIMEOUT=20000
CONFIG_DRM_I915_FENCE_TIMEOUT=10000
CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500
CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
CONFIG_DRM_I915_STOP_TIMEOUT=100
CONFIG_DRM_I915_TIMESLICE_DURATION=1
# CONFIG_DRM_MGAG200 is not set
# CONFIG_DRM_NOUVEAU is not set
CONFIG_DRM_PANEL=y

#
# Display Panels
#
# CONFIG_DRM_PANEL_FOCALTECH_OTA7290B is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
# end of Display Panels

# CONFIG_DRM_QXL is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_ST7571 is not set
# CONFIG_DRM_SSD130X is not set

#
# Drivers for system framebuffers
#
# CONFIG_DRM_EFIDRM is not set
# CONFIG_DRM_SIMPLEDRM is not set
# CONFIG_DRM_VESADRM is not set
# end of Drivers for system framebuffers

# CONFIG_DRM_APPLETBDRM is not set
# CONFIG_DRM_BOCHS is not set
# CONFIG_DRM_CIRRUS_QEMU is not set
# CONFIG_DRM_GM12U320 is not set
# CONFIG_DRM_UDL is not set
# CONFIG_DRM_VBOXVIDEO is not set
# CONFIG_DRM_VGEM is not set
CONFIG_DRM_VIRTIO_GPU=y
CONFIG_DRM_VIRTIO_GPU_KMS=y
# CONFIG_DRM_VKMS is not set
# CONFIG_DRM_VMWGFX is not set
# CONFIG_DRM_XE is not set
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y

#
# Frame buffer Devices
#
# CONFIG_FB is not set
# end of Frame buffer Devices

#
# Backlight & LCD device support
#
# CONFIG_LCD_CLASS_DEVICE is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_AW99706 is not set
# CONFIG_BACKLIGHT_KTZ8866 is not set
# CONFIG_BACKLIGHT_MAX25014 is not set
# CONFIG_BACKLIGHT_APPLE is not set
# CONFIG_BACKLIGHT_QCOM_WLED is not set
# CONFIG_BACKLIGHT_SAHARA is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
# CONFIG_BACKLIGHT_LM3509 is not set
# CONFIG_BACKLIGHT_LM3639 is not set
# CONFIG_BACKLIGHT_LV5207LP is not set
# CONFIG_BACKLIGHT_BD6107 is not set
# CONFIG_BACKLIGHT_ARCXCNN is not set
# end of Backlight & LCD device support

CONFIG_HDMI=y
# CONFIG_FIRMWARE_EDID is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_DUMMY_CONSOLE_COLUMNS=80
CONFIG_DUMMY_CONSOLE_ROWS=25
# end of Console display driver support

# CONFIG_TRACE_GPU_MEM is not set
# end of Graphics support

# CONFIG_DRM_ACCEL is not set
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_HWDEP=y
CONFIG_SND_SEQ_DEVICE=y
CONFIG_SND_JACK=y
CONFIG_SND_JACK_INPUT_DEV=y
# CONFIG_SND_OSSEMUL is not set
CONFIG_SND_PCM_TIMER=y
CONFIG_SND_HRTIMER=y
# CONFIG_SND_DYNAMIC_MINORS is not set
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_PROC_FS=y
CONFIG_SND_VERBOSE_PROCFS=y
CONFIG_SND_CTL_FAST_LOOKUP=y
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_CTL_INPUT_VALIDATION is not set
# CONFIG_SND_UTIMER is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=y
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
# CONFIG_SND_SEQ_UMP is not set
CONFIG_SND_DRIVERS=y
# CONFIG_SND_PCSP is not set
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_ALOOP is not set
# CONFIG_SND_PCMTEST is not set
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
CONFIG_SND_PCI=y
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ASIHPI is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AW2 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_OXYGEN is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CTXFI is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_INDIGOIOX is not set
# CONFIG_SND_INDIGODJX is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_LOLA is not set
# CONFIG_SND_LX6464ES is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SE6X is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VIRTUOSO is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set

#
# HD-Audio
#
CONFIG_SND_HDA=y
CONFIG_SND_HDA_HWDEP=y
# CONFIG_SND_HDA_RECONFIG is not set
# CONFIG_SND_HDA_INPUT_BEEP is not set
# CONFIG_SND_HDA_PATCH_LOADER is not set
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
# CONFIG_SND_HDA_CTL_DEV_ID is not set
CONFIG_SND_HDA_PREALLOC_SIZE=0
CONFIG_SND_HDA_INTEL=y
# CONFIG_SND_HDA_ACPI is not set
# CONFIG_SND_HDA_CODEC_ANALOG is not set
# CONFIG_SND_HDA_CODEC_SIGMATEL is not set
# CONFIG_SND_HDA_CODEC_VIA is not set
# CONFIG_SND_HDA_CODEC_CONEXANT is not set
# CONFIG_SND_HDA_CODEC_SENARYTECH is not set
# CONFIG_SND_HDA_CODEC_CA0110 is not set
# CONFIG_SND_HDA_CODEC_CA0132 is not set
# CONFIG_SND_HDA_CODEC_CMEDIA is not set
# CONFIG_SND_HDA_CODEC_CM9825 is not set
# CONFIG_SND_HDA_CODEC_SI3054 is not set
# CONFIG_SND_HDA_GENERIC is not set
# CONFIG_SND_HDA_CODEC_REALTEK is not set
# CONFIG_SND_HDA_CODEC_CIRRUS is not set
# CONFIG_SND_HDA_CODEC_HDMI is not set
CONFIG_SND_HDA_CORE=y
CONFIG_SND_HDA_COMPONENT=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_INTEL_NHLT=y
CONFIG_SND_INTEL_DSP_CONFIG=y
CONFIG_SND_INTEL_SOUNDWIRE_ACPI=y
# end of HD-Audio

CONFIG_SND_USB=y
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_UA101 is not set
# CONFIG_SND_USB_USX2Y is not set
# CONFIG_SND_USB_CAIAQ is not set
# CONFIG_SND_USB_US122L is not set
# CONFIG_SND_USB_US144MKII is not set
# CONFIG_SND_USB_6FIRE is not set
# CONFIG_SND_USB_HIFACE is not set
# CONFIG_SND_BCD2000 is not set
# CONFIG_SND_USB_POD is not set
# CONFIG_SND_USB_PODHD is not set
# CONFIG_SND_USB_TONEPORT is not set
# CONFIG_SND_USB_VARIAX is not set
CONFIG_SND_PCMCIA=y
# CONFIG_SND_VXPOCKET is not set
# CONFIG_SND_PDAUDIOCF is not set
# CONFIG_SND_SOC is not set
CONFIG_SND_X86=y
# CONFIG_HDMI_LPE_AUDIO is not set
# CONFIG_SND_VIRTIO is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HID_BATTERY_STRENGTH is not set
CONFIG_HIDRAW=y
# CONFIG_UHID is not set
CONFIG_HID_GENERIC=y
# CONFIG_HID_HAPTIC is not set

#
# Special HID drivers
#
CONFIG_HID_A4TECH=y
# CONFIG_HID_ACCUTOUCH is not set
# CONFIG_HID_ACRUX is not set
CONFIG_HID_APPLE=y
# CONFIG_HID_APPLEIR is not set
# CONFIG_HID_APPLETB_BL is not set
# CONFIG_HID_APPLETB_KBD is not set
# CONFIG_HID_ASUS is not set
# CONFIG_HID_AUREAL is not set
CONFIG_HID_BELKIN=y
# CONFIG_HID_BETOP_FF is not set
# CONFIG_HID_BIGBEN_FF is not set
CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
# CONFIG_HID_CORSAIR is not set
# CONFIG_HID_COUGAR is not set
# CONFIG_HID_MACALLY is not set
# CONFIG_HID_PRODIKEYS is not set
# CONFIG_HID_CMEDIA is not set
# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=y
# CONFIG_HID_DRAGONRISE is not set
# CONFIG_HID_EMS_FF is not set
# CONFIG_HID_ELAN is not set
# CONFIG_HID_ELECOM is not set
# CONFIG_HID_ELO is not set
# CONFIG_HID_EVISION is not set
CONFIG_HID_EZKEY=y
# CONFIG_HID_FT260 is not set
# CONFIG_HID_GEMBIRD is not set
# CONFIG_HID_GFRM is not set
# CONFIG_HID_GLORIOUS is not set
# CONFIG_HID_HOLTEK is not set
# CONFIG_HID_GOOGLE_STADIA_FF is not set
# CONFIG_HID_VIVALDI is not set
# CONFIG_HID_GT683R is not set
# CONFIG_HID_KEYTOUCH is not set
# CONFIG_HID_KYE is not set
# CONFIG_HID_KYSONA is not set
# CONFIG_HID_UCLOGIC is not set
# CONFIG_HID_WALTOP is not set
# CONFIG_HID_VIEWSONIC is not set
# CONFIG_HID_VRC2 is not set
# CONFIG_HID_XIAOMI is not set
CONFIG_HID_GYRATION=y
# CONFIG_HID_ICADE is not set
CONFIG_HID_ITE=y
# CONFIG_HID_JABRA is not set
# CONFIG_HID_TWINHAN is not set
CONFIG_HID_KENSINGTON=y
# CONFIG_HID_LCPOWER is not set
# CONFIG_HID_LED is not set
# CONFIG_HID_LENOVO is not set
# CONFIG_HID_LETSKETCH is not set
# CONFIG_HID_MAGICMOUSE is not set
# CONFIG_HID_MALTRON is not set
# CONFIG_HID_MAYFLASH is not set
# CONFIG_HID_MEGAWORLD_FF is not set
# CONFIG_HID_RAKK is not set
CONFIG_HID_REDRAGON=y
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
# CONFIG_HID_MULTITOUCH is not set
# CONFIG_HID_NINTENDO is not set
# CONFIG_HID_NTI is not set
CONFIG_HID_NTRIG=y
# CONFIG_HID_ORTEK is not set
CONFIG_HID_PANTHERLORD=y
CONFIG_PANTHERLORD_FF=y
# CONFIG_HID_PENMOUNT is not set
CONFIG_HID_PETALYNX=y
# CONFIG_HID_PICOLCD is not set
# CONFIG_HID_PLANTRONICS is not set
# CONFIG_HID_PXRC is not set
# CONFIG_HID_RAPOO is not set
# CONFIG_HID_RAZER is not set
# CONFIG_HID_PRIMAX is not set
# CONFIG_HID_RETRODE is not set
# CONFIG_HID_ROCCAT is not set
# CONFIG_HID_SAITEK is not set
CONFIG_HID_SAMSUNG=y
# CONFIG_HID_SEMITEK is not set
# CONFIG_HID_SIGMAMICRO is not set
CONFIG_HID_SONY=y
# CONFIG_SONY_FF is not set
# CONFIG_HID_SPEEDLINK is not set
# CONFIG_HID_STEAM is not set
# CONFIG_HID_STEELSERIES is not set
CONFIG_HID_SUNPLUS=y
# CONFIG_HID_RMI is not set
# CONFIG_HID_GREENASIA is not set
# CONFIG_HID_SMARTJOYPLUS is not set
# CONFIG_HID_TIVO is not set
CONFIG_HID_TOPSEED=y
# CONFIG_HID_TOPRE is not set
# CONFIG_HID_THINGM is not set
# CONFIG_HID_THRUSTMASTER is not set
# CONFIG_HID_UDRAW_PS3 is not set
# CONFIG_HID_U2FZERO is not set
# CONFIG_HID_UNIVERSAL_PIDFF is not set
# CONFIG_HID_WACOM is not set
# CONFIG_HID_WIIMOTE is not set
# CONFIG_HID_WINWING is not set
# CONFIG_HID_XINMO is not set
# CONFIG_HID_ZEROPLUS is not set
# CONFIG_HID_ZYDACRON is not set
# CONFIG_HID_SENSOR_HUB is not set
# CONFIG_HID_ALPS is not set
# CONFIG_HID_MCP2221 is not set
# CONFIG_HID_HUAWEI is not set
# end of Special HID drivers

#
# HID-BPF support
#
# end of HID-BPF support

CONFIG_I2C_HID=y
# CONFIG_I2C_HID_ACPI is not set
# CONFIG_I2C_HID_OF is not set

#
# Intel ISH HID support
#
# CONFIG_INTEL_ISH_HID is not set
# end of Intel ISH HID support

#
# AMD SFH HID Support
#
# CONFIG_AMD_SFH_HID is not set
# end of AMD SFH HID Support

#
# Intel THC HID Support
#
# CONFIG_INTEL_THC_HID is not set
# end of Intel THC HID Support

#
# USB HID support
#
CONFIG_USB_HID=y
CONFIG_HID_PID=y
CONFIG_USB_HIDDEV=y
# end of USB HID support

CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=y
# CONFIG_USB_LED_TRIG is not set
# CONFIG_USB_ULPI_BUS is not set
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=y
CONFIG_USB_PCI=y
CONFIG_USB_PCI_AMD=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y

#
# Miscellaneous USB options
#
CONFIG_USB_DEFAULT_PERSIST=y
# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_PRODUCTLIST is not set
# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
CONFIG_USB_AUTOSUSPEND_DELAY=2
CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1
CONFIG_USB_MON=y

#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_DBGCAP is not set
CONFIG_USB_XHCI_PCI=y
# CONFIG_USB_XHCI_PCI_RENESAS is not set
# CONFIG_USB_XHCI_PLATFORM is not set
# CONFIG_USB_XHCI_SIDEBAND is not set
CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_EHCI_PCI=y
# CONFIG_USB_EHCI_FSL is not set
# CONFIG_USB_EHCI_HCD_PLATFORM is not set
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_PCI=y
# CONFIG_USB_OHCI_HCD_PLATFORM is not set
CONFIG_USB_UHCI_HCD=y
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_HCD_TEST_MODE is not set

#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
CONFIG_USB_PRINTER=y
# CONFIG_USB_WDM is not set
# CONFIG_USB_TMC is not set

#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; see USB_STORAGE Help for more info
#
CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_REALTEK is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_USBAT is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_STORAGE_ALAUDA is not set
# CONFIG_USB_STORAGE_ONETOUCH is not set
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
# CONFIG_USB_STORAGE_ENE_UB6250 is not set
# CONFIG_USB_UAS is not set

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
# CONFIG_USBIP_CORE is not set

#
# USB dual-mode controller drivers
#
# CONFIG_USB_CDNS_SUPPORT is not set
# CONFIG_USB_MUSB_HDRC is not set
# CONFIG_USB_DWC3 is not set
# CONFIG_USB_DWC2 is not set
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_ISP1760 is not set

#
# USB port drivers
#
# CONFIG_USB_SERIAL is not set

#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_SEVSEG is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_APPLE_MFI_FASTCHARGE is not set
# CONFIG_USB_LJCA is not set
# CONFIG_USB_USBIO is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_EHSET_TEST_FIXTURE is not set
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_YUREX is not set
# CONFIG_USB_EZUSB_FX2 is not set
# CONFIG_USB_HUB_USB251XB is not set
# CONFIG_USB_HSIC_USB3503 is not set
# CONFIG_USB_HSIC_USB4604 is not set
# CONFIG_USB_LINK_LAYER_TEST is not set
# CONFIG_USB_CHAOSKEY is not set

#
# USB Physical Layer drivers
#
# CONFIG_NOP_USB_XCEIV is not set
# CONFIG_USB_ISP1301 is not set
# end of USB Physical Layer drivers

# CONFIG_USB_GADGET is not set
# CONFIG_TYPEC is not set
# CONFIG_USB_ROLE_SWITCH is not set
# CONFIG_MMC is not set
# CONFIG_SCSI_UFSHCD is not set
# CONFIG_MEMSTICK is not set
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
# CONFIG_LEDS_CLASS_FLASH is not set
# CONFIG_LEDS_CLASS_MULTICOLOR is not set
# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set

#
# LED drivers
#
# CONFIG_LEDS_APU is not set
# CONFIG_LEDS_OSRAM_AMS_AS3668 is not set
# CONFIG_LEDS_AW200XX is not set
# CONFIG_LEDS_LM3530 is not set
# CONFIG_LEDS_LM3532 is not set
# CONFIG_LEDS_LM3642 is not set
# CONFIG_LEDS_PCA9532 is not set
# CONFIG_LEDS_LP3944 is not set
# CONFIG_LEDS_PCA955X is not set
# CONFIG_LEDS_PCA963X is not set
# CONFIG_LEDS_PCA995X is not set
# CONFIG_LEDS_BD2606MVV is not set
# CONFIG_LEDS_BD2802 is not set
# CONFIG_LEDS_INTEL_SS4200 is not set
# CONFIG_LEDS_TCA6507 is not set
# CONFIG_LEDS_TLC591XX is not set
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_IS31FL319X is not set

#
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
#
# CONFIG_LEDS_BLINKM is not set
# CONFIG_LEDS_MLXCPLD is not set
# CONFIG_LEDS_MLXREG is not set
# CONFIG_LEDS_USER is not set
# CONFIG_LEDS_NIC78BX is not set

#
# Flash and Torch LED drivers
#

#
# RGB LED drivers
#

#
# LED Triggers
#
CONFIG_LEDS_TRIGGERS=y
# CONFIG_LEDS_TRIGGER_TIMER is not set
# CONFIG_LEDS_TRIGGER_ONESHOT is not set
# CONFIG_LEDS_TRIGGER_DISK is not set
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
# CONFIG_LEDS_TRIGGER_CPU is not set
# CONFIG_LEDS_TRIGGER_ACTIVITY is not set
# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set

#
# iptables trigger is under Netfilter config (LED target)
#
# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
# CONFIG_LEDS_TRIGGER_CAMERA is not set
# CONFIG_LEDS_TRIGGER_PANIC is not set
# CONFIG_LEDS_TRIGGER_NETDEV is not set
# CONFIG_LEDS_TRIGGER_PATTERN is not set
# CONFIG_LEDS_TRIGGER_TTY is not set
# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set

#
# Simatic LED drivers
#
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
CONFIG_EDAC_ATOMIC_SCRUB=y
CONFIG_EDAC_SUPPORT=y
CONFIG_RTC_LIB=y
CONFIG_RTC_MC146818_LIB=y
CONFIG_RTC_CLASS=y
# CONFIG_RTC_HCTOSYS is not set
CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
CONFIG_RTC_NVMEM=y

#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
# CONFIG_RTC_DRV_TEST is not set

#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_ABB5ZES3 is not set
# CONFIG_RTC_DRV_ABEOZ9 is not set
# CONFIG_RTC_DRV_ABX80X is not set
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_ISL12022 is not set
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_PCF8523 is not set
# CONFIG_RTC_DRV_PCF85363 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_BQ32K is not set
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8010 is not set
# CONFIG_RTC_DRV_RX8111 is not set
# CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set
# CONFIG_RTC_DRV_EM3027 is not set
# CONFIG_RTC_DRV_RV3028 is not set
# CONFIG_RTC_DRV_RV3032 is not set
# CONFIG_RTC_DRV_RV8803 is not set
# CONFIG_RTC_DRV_SD2405AL is not set
# CONFIG_RTC_DRV_SD3078 is not set

#
# SPI RTC drivers
#
CONFIG_RTC_I2C_AND_SPI=y

#
# SPI and I2C RTC drivers
#
# CONFIG_RTC_DRV_DS3232 is not set
# CONFIG_RTC_DRV_PCF2127 is not set
# CONFIG_RTC_DRV_PCF85063 is not set
# CONFIG_RTC_DRV_RV3029C2 is not set
# CONFIG_RTC_DRV_RX6110 is not set

#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=y
# CONFIG_RTC_DRV_DS1286 is not set
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1685_FAMILY is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_DS2404 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set
# CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_MSM6242 is not set
# CONFIG_RTC_DRV_RP5C01 is not set

#
# on-CPU RTC drivers
#
# CONFIG_RTC_DRV_FTRTC010 is not set
# CONFIG_RTC_DRV_GOLDFISH is not set

#
# HID Sensor RTC drivers
#
CONFIG_DMADEVICES=y
# CONFIG_DMADEVICES_DEBUG is not set

#
# DMA Devices
#
CONFIG_DMA_ENGINE=y
CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DMA_ACPI=y
# CONFIG_ALTERA_MSGDMA is not set
# CONFIG_INTEL_IDMA64 is not set
# CONFIG_INTEL_IDXD is not set
# CONFIG_INTEL_IDXD_COMPAT is not set
# CONFIG_INTEL_IOATDMA is not set
# CONFIG_PLX_DMA is not set
# CONFIG_SWITCHTEC_DMA is not set
# CONFIG_XILINX_DMA is not set
# CONFIG_XILINX_XDMA is not set
# CONFIG_AMD_PTDMA is not set
# CONFIG_AMD_QDMA is not set
# CONFIG_QCOM_HIDMA_MGMT is not set
# CONFIG_QCOM_HIDMA is not set
CONFIG_DW_DMAC_CORE=y
# CONFIG_DW_DMAC is not set
# CONFIG_DW_DMAC_PCI is not set
# CONFIG_DW_EDMA is not set
CONFIG_HSU_DMA=y
# CONFIG_SF_PDMA is not set
# CONFIG_INTEL_LDMA is not set

#
# DMA Clients
#
# CONFIG_ASYNC_TX_DMA is not set
# CONFIG_DMATEST is not set

#
# DMABUF options
#
CONFIG_SYNC_FILE=y
# CONFIG_SW_SYNC is not set
# CONFIG_UDMABUF is not set
# CONFIG_DMABUF_DEBUG is not set
# CONFIG_DMABUF_HEAPS is not set
# end of DMABUF options

# CONFIG_UIO is not set
# CONFIG_VFIO is not set
# CONFIG_VIRT_DRIVERS is not set
CONFIG_VIRTIO_ANCHOR=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI_LIB=y
CONFIG_VIRTIO_PCI_LIB_LEGACY=y
CONFIG_VIRTIO_MENU=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_ADMIN_LEGACY=y
CONFIG_VIRTIO_PCI_LEGACY=y
# CONFIG_VIRTIO_BALLOON is not set
CONFIG_VIRTIO_INPUT=y
# CONFIG_VIRTIO_MMIO is not set
CONFIG_VIRTIO_DMA_SHARED_BUFFER=y
# CONFIG_VIRTIO_DEBUG is not set
# CONFIG_VIRTIO_RTC is not set
# CONFIG_VDPA is not set
CONFIG_VHOST_MENU=y
# CONFIG_VHOST_NET is not set
# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
CONFIG_VHOST_ENABLE_FORK_OWNER_CONTROL=y

#
# Microsoft Hyper-V guest support
#
# CONFIG_HYPERV is not set
# end of Microsoft Hyper-V guest support

# CONFIG_GREYBUS is not set
# CONFIG_COMEDI is not set
# CONFIG_GPIB is not set
# CONFIG_STAGING is not set
# CONFIG_GOLDFISH is not set
# CONFIG_CHROME_PLATFORMS is not set
# CONFIG_MELLANOX_PLATFORM is not set
CONFIG_SURFACE_PLATFORMS=y
# CONFIG_SURFACE_3_POWER_OPREGION is not set
# CONFIG_SURFACE_GPE is not set
# CONFIG_SURFACE_PRO3_BUTTON is not set
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_WMI_BMOF=y
# CONFIG_HUAWEI_WMI is not set
# CONFIG_X86_PLATFORM_DRIVERS_UNIWILL is not set
# CONFIG_MXM_WMI is not set
# CONFIG_NVIDIA_WMI_EC_BACKLIGHT is not set
# CONFIG_XIAOMI_WMI is not set
# CONFIG_REDMI_WMI is not set
# CONFIG_GIGABYTE_WMI is not set
# CONFIG_BITLAND_MIFS_WMI is not set
# CONFIG_ACERHDF is not set
# CONFIG_ACER_WIRELESS is not set
# CONFIG_ACER_WMI is not set

#
# AMD HSMP Driver
#
# CONFIG_AMD_HSMP_ACPI is not set
# CONFIG_AMD_HSMP_PLAT is not set
# end of AMD HSMP Driver

# CONFIG_AMD_PMC is not set
# CONFIG_AMD_HFI is not set
# CONFIG_AMD_3D_VCACHE is not set
# CONFIG_AMD_WBRF is not set
# CONFIG_AMD_ISP_PLATFORM is not set
# CONFIG_ADV_SWBUTTON is not set
# CONFIG_APPLE_GMUX is not set
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_ASUS_WIRELESS is not set
# CONFIG_ASUS_WMI is not set
# CONFIG_AYANEO_EC is not set
CONFIG_EEEPC_LAPTOP=y
# CONFIG_X86_PLATFORM_DRIVERS_DELL is not set
# CONFIG_AMILO_RFKILL is not set
# CONFIG_FUJITSU_LAPTOP is not set
# CONFIG_FUJITSU_TABLET is not set
# CONFIG_GPD_POCKET_FAN is not set
# CONFIG_X86_PLATFORM_DRIVERS_HP is not set
# CONFIG_WIRELESS_HOTKEY is not set
# CONFIG_IBM_RTL is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_INTEL_ATOMISP2_PM is not set
# CONFIG_INTEL_IFS is not set
# CONFIG_INTEL_SAR_INT1092 is not set

#
# Intel Speed Select Technology interface support
#
# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set
# end of Intel Speed Select Technology interface support

# CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set
# CONFIG_INTEL_WMI_THUNDERBOLT is not set

#
# Intel Uncore Frequency Control
#
# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set
# end of Intel Uncore Frequency Control

# CONFIG_INTEL_HID_EVENT is not set
# CONFIG_INTEL_VBTN is not set
# CONFIG_INTEL_EHL_PSE_IO is not set
# CONFIG_INTEL_OAKTRAIL is not set
# CONFIG_INTEL_PUNIT_IPC is not set
# CONFIG_INTEL_RST is not set
# CONFIG_INTEL_SMARTCONNECT is not set
# CONFIG_INTEL_TURBO_MAX_3 is not set
# CONFIG_INTEL_VSEC is not set
# CONFIG_IDEAPAD_LAPTOP is not set
# CONFIG_LENOVO_WMI_HOTKEY_UTILITIES is not set
# CONFIG_LENOVO_WMI_CAMERA is not set
# CONFIG_THINKPAD_ACPI is not set
# CONFIG_THINKPAD_LMI is not set
# CONFIG_YOGABOOK is not set
# CONFIG_LENOVO_WMI_GAMEZONE is not set
# CONFIG_LENOVO_WMI_TUNING is not set
# CONFIG_ACPI_QUICKSTART is not set
# CONFIG_MSI_EC is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_MSI_WMI is not set
# CONFIG_MSI_WMI_PLATFORM is not set
# CONFIG_SAMSUNG_GALAXYBOOK is not set
# CONFIG_SAMSUNG_LAPTOP is not set
# CONFIG_SAMSUNG_Q10 is not set
# CONFIG_TOSHIBA_BT_RFKILL is not set
# CONFIG_TOSHIBA_HAPS is not set
# CONFIG_TOSHIBA_WMI is not set
# CONFIG_ACPI_CMPC is not set
# CONFIG_COMPAL_LAPTOP is not set
# CONFIG_LG_LAPTOP is not set
# CONFIG_PANASONIC_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_SYSTEM76_ACPI is not set
# CONFIG_TOPSTAR_LAPTOP is not set
# CONFIG_SERIAL_MULTI_INSTANTIATE is not set
# CONFIG_INSPUR_PLATFORM_PROFILE is not set
# CONFIG_DASHARO_ACPI is not set
# CONFIG_INTEL_IPS is not set
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
# CONFIG_SIEMENS_SIMATIC_IPC is not set
# CONFIG_WINMATE_FM07_KEYS is not set
# CONFIG_OXP_EC is not set
# CONFIG_TUXEDO_NB04_WMI_AB is not set
CONFIG_P2SB=y
CONFIG_ACPI_WMI=y
# CONFIG_ACPI_WMI_LEGACY_DEVICE_NAMES is not set
# CONFIG_COMMON_CLK is not set
# CONFIG_HWSPINLOCK is not set

#
# Clock Source drivers
#
CONFIG_CLKEVT_I8253=y
CONFIG_I8253_LOCK=y
CONFIG_CLKBLD_I8253=y
# end of Clock Source drivers

CONFIG_MAILBOX=y
CONFIG_PCC=y
# CONFIG_ALTERA_MBOX is not set
CONFIG_IOMMU_IOVA=y
CONFIG_IOMMU_API=y
CONFIG_IOMMU_SUPPORT=y

#
# Generic IOMMU Pagetable Support
#
# end of Generic IOMMU Pagetable Support

# CONFIG_IOMMU_DEBUGFS is not set
# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set
CONFIG_IOMMU_DEFAULT_DMA_LAZY=y
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_DMA=y
CONFIG_IOMMU_SVA=y
CONFIG_IOMMU_IOPF=y
CONFIG_AMD_IOMMU=y
CONFIG_DMAR_TABLE=y
CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_SVM is not set
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
CONFIG_INTEL_IOMMU_PERF_EVENTS=y
# CONFIG_IOMMUFD is not set
# CONFIG_IRQ_REMAP is not set
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_GENERIC_PT=y
# CONFIG_DEBUG_GENERIC_PT is not set
CONFIG_IOMMU_PT=y
CONFIG_IOMMU_PT_AMDV1=y
CONFIG_IOMMU_PT_VTDSS=y
# CONFIG_IOMMU_PT_RISCV64 is not set
CONFIG_IOMMU_PT_X86_64=y

#
# Remoteproc drivers
#
# CONFIG_REMOTEPROC is not set
# end of Remoteproc drivers

#
# Rpmsg drivers
#
# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
# CONFIG_RPMSG_VIRTIO is not set
# end of Rpmsg drivers

#
# SOC (System On Chip) specific Drivers
#

#
# Amlogic SoC drivers
#
# end of Amlogic SoC drivers

#
# Broadcom SoC drivers
#
# end of Broadcom SoC drivers

#
# NXP/Freescale QorIQ SoC drivers
#
# end of NXP/Freescale QorIQ SoC drivers

#
# fujitsu SoC drivers
#
# end of fujitsu SoC drivers

#
# i.MX SoC drivers
#
# end of i.MX SoC drivers

#
# Enable LiteX SoC Builder specific drivers
#
# end of Enable LiteX SoC Builder specific drivers

# CONFIG_WPCM450_SOC is not set

#
# Qualcomm SoC drivers
#
# end of Qualcomm SoC drivers

# CONFIG_SOC_TI is not set

#
# Xilinx SoC drivers
#
# end of Xilinx SoC drivers
# end of SOC (System On Chip) specific Drivers

#
# PM Domains
#

#
# Amlogic PM Domains
#
# end of Amlogic PM Domains

#
# Broadcom PM Domains
#
# end of Broadcom PM Domains

#
# i.MX PM Domains
#
# end of i.MX PM Domains

#
# Qualcomm PM Domains
#
# end of Qualcomm PM Domains
# end of PM Domains

# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
# CONFIG_NTB is not set
# CONFIG_PWM is not set

#
# IRQ chip support
#
CONFIG_IRQ_MSI_LIB=y
# end of IRQ chip support

# CONFIG_IPACK_BUS is not set
# CONFIG_RESET_CONTROLLER is not set

#
# PHY Subsystem
#
# CONFIG_GENERIC_PHY is not set
# CONFIG_PHY_CAN_TRANSCEIVER is not set
# CONFIG_USB_LGM_PHY is not set

#
# PHY drivers for Broadcom platforms
#
# CONFIG_BCM_KONA_USB2_PHY is not set
# end of PHY drivers for Broadcom platforms

# CONFIG_PHY_INTEL_LGM_EMMC is not set
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
# end of PHY Subsystem

# CONFIG_POWERCAP is not set
# CONFIG_MCB is not set

#
# Performance monitor support
#
# CONFIG_DWC_PCIE_PMU is not set
# end of Performance monitor support

# CONFIG_RAS is not set
# CONFIG_USB4 is not set

#
# Android
#
# CONFIG_ANDROID_BINDER_IPC is not set
# end of Android

# CONFIG_LIBNVDIMM is not set
# CONFIG_DAX is not set
CONFIG_NVMEM=y
CONFIG_NVMEM_SYSFS=y
# CONFIG_NVMEM_LAYOUTS is not set
# CONFIG_NVMEM_RMEM is not set

#
# HW tracing support
#
# CONFIG_STM is not set
# CONFIG_INTEL_TH is not set
# end of HW tracing support

# CONFIG_FPGA is not set
# CONFIG_TEE is not set
# CONFIG_MUX_CORE is not set
# CONFIG_SIOX is not set
# CONFIG_SLIMBUS is not set
# CONFIG_INTERCONNECT is not set
# CONFIG_COUNTER is not set
# CONFIG_MOST is not set
# CONFIG_PECI is not set
# CONFIG_HTE is not set
# end of Device Drivers

#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
# CONFIG_VALIDATE_FS_PARSER is not set
CONFIG_FS_IOMAP=y
CONFIG_BUFFER_HEAD=y
CONFIG_LEGACY_DIRECT_IO=y
# CONFIG_EXT2_FS is not set
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_DEBUG is not set
CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
# CONFIG_F2FS_FS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
# CONFIG_EXPORTFS_BLOCK_OPS is not set
CONFIG_FILE_LOCKING=y
# CONFIG_FS_ENCRYPTION is not set
# CONFIG_FS_VERITY is not set
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_FANOTIFY is not set
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=y
CONFIG_QUOTACTL=y
CONFIG_AUTOFS_FS=y
# CONFIG_FUSE_FS is not set
# CONFIG_OVERLAY_FS is not set

#
# Caches
#
CONFIG_NETFS_SUPPORT=y
# CONFIG_NETFS_STATS is not set
# CONFIG_NETFS_DEBUG is not set
# CONFIG_FSCACHE is not set
# end of Caches

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
# CONFIG_UDF_FS is not set
# end of CD-ROM/DVD Filesystems

#
# DOS/FAT/EXFAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_FAT_DEFAULT_UTF8 is not set
# CONFIG_EXFAT_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_NTFS3_FS is not set
# end of DOS/FAT/EXFAT/NT Filesystems

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_VMCORE=y
# CONFIG_PROC_VMCORE_DEVICE_DUMP is not set
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
# CONFIG_PROC_CHILDREN is not set
CONFIG_PROC_PID_ARCH_STATUS=y
CONFIG_KERNFS=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_TMPFS_XATTR=y
# CONFIG_TMPFS_INODE64 is not set
# CONFIG_TMPFS_QUOTA is not set
CONFIG_ARCH_SUPPORTS_HUGETLBFS=y
CONFIG_HUGETLBFS=y
# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set
CONFIG_HUGETLB_PAGE=y
CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y
CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING=y
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
CONFIG_CONFIGFS_FS=y
CONFIG_EFIVAR_FS=m
# end of Pseudo filesystems

CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ORANGEFS_FS is not set
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_ECRYPT_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_PSTORE is not set
# CONFIG_UFS_FS is not set
# CONFIG_EROFS_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
# CONFIG_NFS_V2 is not set
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
# CONFIG_NFS_SWAP is not set
CONFIG_NFS_V4_0=y
# CONFIG_NFS_V4_2 is not set
CONFIG_PNFS_FILE_LAYOUT=y
CONFIG_PNFS_BLOCK=y
CONFIG_PNFS_FLEXFILE_LAYOUT=y
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_ROOT_NFS=y
# CONFIG_NFS_FSCACHE is not set
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
CONFIG_NFS_DISABLE_UDP_SUPPORT=y
# CONFIG_NFSD is not set
CONFIG_GRACE_PERIOD=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
CONFIG_SUNRPC_GSS=y
CONFIG_SUNRPC_BACKCHANNEL=y
CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_SUNRPC_DEBUG is not set
# CONFIG_CEPH_FS is not set
# CONFIG_CIFS is not set
# CONFIG_SMB_SERVER is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
CONFIG_9P_FS=y
# CONFIG_9P_FS_POSIX_ACL is not set
# CONFIG_9P_FS_SECURITY is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_MAC_ROMAN is not set
# CONFIG_NLS_MAC_CELTIC is not set
# CONFIG_NLS_MAC_CENTEURO is not set
# CONFIG_NLS_MAC_CROATIAN is not set
# CONFIG_NLS_MAC_CYRILLIC is not set
# CONFIG_NLS_MAC_GAELIC is not set
# CONFIG_NLS_MAC_GREEK is not set
# CONFIG_NLS_MAC_ICELAND is not set
# CONFIG_NLS_MAC_INUIT is not set
# CONFIG_NLS_MAC_ROMANIAN is not set
# CONFIG_NLS_MAC_TURKISH is not set
CONFIG_NLS_UTF8=y
# CONFIG_DLM is not set
# CONFIG_UNICODE is not set
CONFIG_IO_WQ=y
# end of File systems

#
# Security options
#
CONFIG_KEYS=y
# CONFIG_KEYS_REQUEST_CACHE is not set
# CONFIG_PERSISTENT_KEYRINGS is not set
# CONFIG_BIG_KEYS is not set
# CONFIG_TRUSTED_KEYS is not set
# CONFIG_ENCRYPTED_KEYS is not set
# CONFIG_KEY_DH_OPERATIONS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
CONFIG_PROC_MEM_ALWAYS_FORCE=y
# CONFIG_PROC_MEM_FORCE_PTRACE is not set
# CONFIG_PROC_MEM_NO_FORCE is not set
# CONFIG_MSEAL_SYSTEM_MAPPINGS is not set
CONFIG_SECURITY=y
CONFIG_HAS_SECURITY_AUDIT=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
# CONFIG_SECURITY_PATH is not set
# CONFIG_INTEL_TXT is not set
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_SECURITY_SELINUX=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_DEVELOP=y
CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_AVC_HASH_BITS=9
# CONFIG_SECURITY_SELINUX_DEBUG is not set
# CONFIG_SECURITY_SMACK is not set
# CONFIG_SECURITY_TOMOYO is not set
# CONFIG_SECURITY_APPARMOR is not set
# CONFIG_SECURITY_LOADPIN is not set
# CONFIG_SECURITY_YAMA is not set
# CONFIG_SECURITY_SAFESETID is not set
# CONFIG_SECURITY_LOCKDOWN_LSM is not set
# CONFIG_SECURITY_LANDLOCK is not set
# CONFIG_SECURITY_IPE is not set
CONFIG_INTEGRITY=y
# CONFIG_INTEGRITY_SIGNATURE is not set
CONFIG_INTEGRITY_AUDIT=y
# CONFIG_IMA is not set
# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
# CONFIG_EVM is not set
CONFIG_DEFAULT_SECURITY_SELINUX=y
# CONFIG_DEFAULT_SECURITY_DAC is not set
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,selinux,smack,tomoyo,apparmor,ipe,bpf"

#
# Kernel hardening options
#

#
# Memory initialization
#
CONFIG_INIT_STACK_NONE=y
# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
# CONFIG_ZERO_CALL_USED_REGS is not set
# end of Memory initialization

#
# Bounds checking
#
# CONFIG_FORTIFY_SOURCE is not set
# CONFIG_HARDENED_USERCOPY is not set
# end of Bounds checking

#
# Hardening of kernel data structures
#
# CONFIG_LIST_HARDENED is not set
# CONFIG_BUG_ON_DATA_CORRUPTION is not set
# end of Hardening of kernel data structures

CONFIG_RANDSTRUCT_NONE=y
# end of Kernel hardening options
# end of Security options

CONFIG_CRYPTO=y

#
# Crypto core or helper
#
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_SIG=y
CONFIG_CRYPTO_SIG2=y
CONFIG_CRYPTO_SKCIPHER=y
CONFIG_CRYPTO_SKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_AKCIPHER2=y
CONFIG_CRYPTO_AKCIPHER=y
CONFIG_CRYPTO_ACOMP2=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
# CONFIG_CRYPTO_USER is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_PCRYPT is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_AUTHENC=y
CONFIG_CRYPTO_KRB5ENC=y
# CONFIG_CRYPTO_BENCHMARK is not set
# end of Crypto core or helper

#
# Public-key cryptography
#
CONFIG_CRYPTO_RSA=y
# CONFIG_CRYPTO_DH is not set
# CONFIG_CRYPTO_ECDH is not set
# CONFIG_CRYPTO_ECDSA is not set
# CONFIG_CRYPTO_ECRDSA is not set
# CONFIG_CRYPTO_MLDSA is not set
# end of Public-key cryptography

#
# Block ciphers
#
CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_ARIA is not set
# CONFIG_CRYPTO_BLOWFISH is not set
CONFIG_CRYPTO_CAMELLIA=y
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_SM4_GENERIC is not set
# CONFIG_CRYPTO_TWOFISH is not set
# end of Block ciphers

#
# Length-preserving ciphers and modes
#
# CONFIG_CRYPTO_ADIANTUM is not set
# CONFIG_CRYPTO_CHACHA20 is not set
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_ECB=y
# CONFIG_CRYPTO_HCTR2 is not set
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
# end of Length-preserving ciphers and modes

#
# AEAD (authenticated encryption with associated data) ciphers
#
# CONFIG_CRYPTO_AEGIS128 is not set
# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
CONFIG_CRYPTO_CCM=y
CONFIG_CRYPTO_GCM=y
CONFIG_CRYPTO_GENIV=y
CONFIG_CRYPTO_SEQIV=y
CONFIG_CRYPTO_ECHAINIV=y
# CONFIG_CRYPTO_ESSIV is not set
# end of AEAD (authenticated encryption with associated data) ciphers

#
# Hashes, digests, and MACs
#
# CONFIG_CRYPTO_BLAKE2B is not set
CONFIG_CRYPTO_CMAC=y
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_RMD160 is not set
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SHA3=y
# CONFIG_CRYPTO_SM3 is not set
# CONFIG_CRYPTO_STREEBOG is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_XXHASH is not set
# end of Hashes, digests, and MACs

#
# CRCs (cyclic redundancy checks)
#
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CRC32 is not set
# end of CRCs (cyclic redundancy checks)

#
# Compression
#
# CONFIG_CRYPTO_DEFLATE is not set
CONFIG_CRYPTO_LZO=y
# CONFIG_CRYPTO_842 is not set
CONFIG_CRYPTO_LZ4=y
# CONFIG_CRYPTO_LZ4HC is not set
# CONFIG_CRYPTO_ZSTD is not set
# end of Compression

#
# Random number generation
#
CONFIG_CRYPTO_DRBG=y
CONFIG_CRYPTO_JITTERENTROPY=y
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKS=64
CONFIG_CRYPTO_JITTERENTROPY_MEMORY_BLOCKSIZE=32
CONFIG_CRYPTO_JITTERENTROPY_OSR=1
# end of Random number generation

#
# Userspace interface (deprecated)
#
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
# CONFIG_CRYPTO_USER_API_RNG is not set
# CONFIG_CRYPTO_USER_API_AEAD is not set
# end of Userspace interface (deprecated)

#
# Accelerated Cryptographic Algorithms for CPU (x86)
#
# CONFIG_CRYPTO_AES_NI_INTEL is not set
# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set
# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set
# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set
# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set
# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set
# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set
# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set
# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set
# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set
# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set
# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set
# CONFIG_CRYPTO_TWOFISH_X86_64 is not set
# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set
# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set
# CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64 is not set
# CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64 is not set
# CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64 is not set
# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set
# end of Accelerated Cryptographic Algorithms for CPU (x86)

CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_PADLOCK is not set
# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
# CONFIG_CRYPTO_DEV_CCP is not set
# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set
# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set
# CONFIG_CRYPTO_DEV_QAT_C62X is not set
# CONFIG_CRYPTO_DEV_QAT_4XXX is not set
# CONFIG_CRYPTO_DEV_QAT_420XX is not set
# CONFIG_CRYPTO_DEV_QAT_6XXX is not set
# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set
# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set
# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set
# CONFIG_CRYPTO_DEV_VIRTIO is not set
# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
CONFIG_X509_CERTIFICATE_PARSER=y
# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set
# CONFIG_FIPS_SIGNATURE_SELFTEST is not set

#
# Certificates for signature checking
#
CONFIG_SYSTEM_TRUSTED_KEYRING=y
CONFIG_SYSTEM_TRUSTED_KEYS=""
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SECONDARY_TRUSTED_KEYRING is not set
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
# end of Certificates for signature checking

CONFIG_CRYPTO_KRB5=y
# CONFIG_CRYPTO_KRB5_SELFTESTS is not set
CONFIG_BINARY_PRINTF=y

#
# Library routines
#
# CONFIG_PACKING is not set
CONFIG_BITREVERSE=y
CONFIG_GENERIC_BITREVERSE=y
CONFIG_GENERIC_STRNCPY_FROM_USER=y
CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_NET_UTILS=y
# CONFIG_CORDIC is not set
# CONFIG_PRIME_NUMBERS is not set
CONFIG_RATIONAL=y
CONFIG_GENERIC_IOMAP=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
CONFIG_CRC16=y
CONFIG_CRC_CCITT=y
CONFIG_CRC32=y
CONFIG_CRC32_ARCH=y
CONFIG_CRC_OPTIMIZATIONS=y
CONFIG_CRYPTO_HASH_INFO=y
CONFIG_CRYPTO_LIB_UTILS=y
CONFIG_CRYPTO_LIB_AES=y
CONFIG_CRYPTO_LIB_AES_ARCH=y
CONFIG_CRYPTO_LIB_AES_CBC_MACS=y
CONFIG_CRYPTO_LIB_ARC4=y
CONFIG_CRYPTO_LIB_BLAKE2S_ARCH=y
CONFIG_CRYPTO_LIB_GF128HASH=y
CONFIG_CRYPTO_LIB_GF128HASH_ARCH=y
CONFIG_CRYPTO_LIB_MD5=y
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11
CONFIG_CRYPTO_LIB_SHA1=y
CONFIG_CRYPTO_LIB_SHA1_ARCH=y
CONFIG_CRYPTO_LIB_SHA256=y
CONFIG_CRYPTO_LIB_SHA256_ARCH=y
CONFIG_CRYPTO_LIB_SHA512=y
CONFIG_CRYPTO_LIB_SHA512_ARCH=y
CONFIG_CRYPTO_LIB_SHA3=y
CONFIG_XXHASH=y
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_LZO_COMPRESS=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_LZ4_COMPRESS=y
CONFIG_LZ4_DECOMPRESS=y
CONFIG_ZSTD_COMMON=y
CONFIG_ZSTD_DECOMPRESS=y
CONFIG_XZ_DEC=y
CONFIG_XZ_DEC_X86=y
CONFIG_XZ_DEC_POWERPC=y
CONFIG_XZ_DEC_ARM=y
CONFIG_XZ_DEC_ARMTHUMB=y
CONFIG_XZ_DEC_ARM64=y
CONFIG_XZ_DEC_SPARC=y
CONFIG_XZ_DEC_RISCV=y
# CONFIG_XZ_DEC_MICROLZMA is not set
CONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not set
CONFIG_DECOMPRESS_GZIP=y
CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
CONFIG_DECOMPRESS_LZ4=y
CONFIG_DECOMPRESS_ZSTD=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_INTERVAL_TREE=y
CONFIG_XARRAY_MULTI=y
CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y
CONFIG_DMA_OPS_HELPERS=y
CONFIG_NEED_SG_DMA_FLAGS=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_SWIOTLB=y
# CONFIG_SWIOTLB_DYNAMIC is not set
CONFIG_DMA_NEED_SYNC=y
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_DMA_MAP_BENCHMARK is not set
CONFIG_SGL_ALLOC=y
CONFIG_CHECK_SIGNATURE=y
CONFIG_CPU_RMAP=y
CONFIG_DQL=y
CONFIG_GLOB=y
CONFIG_NLATTR=y
CONFIG_CLZ_TAB=y
# CONFIG_IRQ_POLL is not set
CONFIG_MPILIB=y
CONFIG_DIMLIB=y
CONFIG_OID_REGISTRY=y
CONFIG_UCS2_STRING=y
CONFIG_HAVE_GENERIC_VDSO=y
CONFIG_GENERIC_GETTIMEOFDAY=y
CONFIG_GENERIC_VDSO_OVERFLOW_PROTECT=y
CONFIG_VDSO_GETRANDOM=y
CONFIG_FONT_SUPPORT=y
CONFIG_FONT_8x16=y
CONFIG_FONT_AUTOSELECT=y
CONFIG_SG_POOL=y
CONFIG_ARCH_HAS_PMEM_API=y
CONFIG_ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION=y
CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
CONFIG_ARCH_HAS_COPY_MC=y
CONFIG_ARCH_STACKWALK=y
CONFIG_STACKDEPOT=y
CONFIG_STACKDEPOT_ALWAYS_INIT=y
CONFIG_STACKDEPOT_MAX_FRAMES=64
CONFIG_SBITMAP=y
# CONFIG_LWQ_TEST is not set
# end of Library routines

CONFIG_FIRMWARE_TABLE=y
CONFIG_UNION_FIND=y

#
# Kernel hacking
#

#
# printk and dmesg options
#
CONFIG_PRINTK_TIME=y
# CONFIG_PRINTK_CALLER is not set
# CONFIG_STACKTRACE_BUILD_ID is not set
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
CONFIG_CONSOLE_LOGLEVEL_QUIET=4
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_DYNAMIC_DEBUG is not set
# CONFIG_DYNAMIC_DEBUG_CORE is not set
CONFIG_SYMBOLIC_ERRNAME=y
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_BUGVERBOSE_DETAILED is not set
# end of printk and dmesg options

CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_MISC=y

#
# Compile-time checks and compiler options
#
CONFIG_DEBUG_INFO=y
CONFIG_AS_HAS_NON_CONST_ULEB128=y
# CONFIG_DEBUG_INFO_NONE is not set
# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set
CONFIG_DEBUG_INFO_DWARF4=y
# CONFIG_DEBUG_INFO_DWARF5 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
CONFIG_DEBUG_INFO_COMPRESSED_NONE=y
# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
# CONFIG_GDB_SCRIPTS is not set
CONFIG_FRAME_WARN=2048
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_READABLE_ASM is not set
# CONFIG_HEADERS_INSTALL is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_OBJTOOL=y
# CONFIG_OBJTOOL_WERROR is not set
CONFIG_NOINSTR_VALIDATION=y
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# end of Compile-time checks and compiler options

#
# Generic Kernel Debugging Instruments
#
CONFIG_MAGIC_SYSRQ=y
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
CONFIG_MAGIC_SYSRQ_SERIAL=y
CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
CONFIG_DEBUG_FS=y
CONFIG_DEBUG_FS_ALLOW_ALL=y
# CONFIG_DEBUG_FS_ALLOW_NONE is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN=y
# CONFIG_UBSAN is not set
CONFIG_HAVE_ARCH_KCSAN=y
CONFIG_HAVE_KCSAN_COMPILER=y
# end of Generic Kernel Debugging Instruments

#
# Networking Debugging
#
# CONFIG_NET_DEV_REFCNT_TRACKER is not set
# CONFIG_NET_NS_REFCNT_TRACKER is not set
# CONFIG_DEBUG_NET is not set
# CONFIG_DEBUG_NET_SMALL_RTNL is not set
# end of Networking Debugging

#
# Memory Debugging
#
# CONFIG_PAGE_EXTENSION is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_SLUB_DEBUG=y
# CONFIG_SLUB_DEBUG_ON is not set
CONFIG_SLUB_RCU_DEBUG=y
# CONFIG_PAGE_OWNER is not set
# CONFIG_PAGE_TABLE_CHECK is not set
# CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_PAGE_REF is not set
# CONFIG_DEBUG_RODATA_TEST is not set
CONFIG_ARCH_HAS_DEBUG_WX=y
CONFIG_DEBUG_WX=y
CONFIG_ARCH_HAS_PTDUMP=y
CONFIG_PTDUMP=y
# CONFIG_PTDUMP_DEBUGFS is not set
CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_PER_VMA_LOCK_STATS is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SHRINKER_DEBUG is not set
CONFIG_DEBUG_STACK_USAGE=y
# CONFIG_SCHED_STACK_END_CHECK is not set
CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
# CONFIG_DEBUG_VFS is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_VM_PGTABLE is not set
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
# CONFIG_DEBUG_VIRTUAL is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_PER_CPU_MAPS is not set
CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y
# CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set
# CONFIG_MEM_ALLOC_PROFILING is not set
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
CONFIG_CC_HAS_KASAN_GENERIC=y
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
CONFIG_KASAN=y
CONFIG_KASAN_GENERIC=y
# CONFIG_KASAN_OUTLINE is not set
CONFIG_KASAN_INLINE=y
CONFIG_KASAN_STACK=y
# CONFIG_KASAN_VMALLOC is not set
# CONFIG_KASAN_EXTRA_INFO is not set
CONFIG_HAVE_ARCH_KFENCE=y
# CONFIG_KFENCE is not set
CONFIG_HAVE_ARCH_KMSAN=y
# end of Memory Debugging

# CONFIG_DEBUG_SHIRQ is not set

#
# Debug Oops, Lockups and Hangs
#
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_TIMEOUT=0
# CONFIG_SOFTLOCKUP_DETECTOR is not set
CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y
# CONFIG_HARDLOCKUP_DETECTOR is not set
CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
# CONFIG_DETECT_HUNG_TASK is not set
# CONFIG_WQ_WATCHDOG is not set
# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set
# CONFIG_TEST_LOCKUP is not set
# end of Debug Oops, Lockups and Hangs

#
# Scheduler Debugging
#
CONFIG_SCHED_INFO=y
CONFIG_SCHEDSTATS=y
# end of Scheduler Debugging

# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_DEBUG_ATOMIC is not set

#
# Lock Debugging (spinlocks, mutexes, etc...)
#
CONFIG_LOCK_DEBUGGING_SUPPORT=y
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
# CONFIG_DEBUG_RWSEMS is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_SCF_TORTURE_TEST is not set
# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
# end of Lock Debugging (spinlocks, mutexes, etc...)

# CONFIG_NMI_CHECK_CPU is not set
# CONFIG_DEBUG_IRQFLAGS is not set
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set

#
# Debug kernel data structures
#
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_PLIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_MAPLE_TREE is not set
# end of Debug kernel data structures

#
# RCU Debugging
#
# CONFIG_RCU_SCALE_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_REF_SCALE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=21
CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
# CONFIG_RCU_CPU_STALL_CPUTIME is not set
CONFIG_RCU_TRACE=y
# CONFIG_RCU_EQS_DEBUG is not set
# end of RCU Debugging

# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_DEBUG_CGROUP_REF is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_RETHOOK=y
CONFIG_RETHOOK=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y
CONFIG_HAVE_FTRACE_REGS_HAVING_PT_REGS=y
CONFIG_HAVE_DYNAMIC_FTRACE_NO_PATCHABLE=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_JMP=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_FENTRY=y
CONFIG_HAVE_OBJTOOL_MCOUNT=y
CONFIG_HAVE_OBJTOOL_NOP_MCOUNT=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y
CONFIG_TRACE_CLOCK=y
CONFIG_RING_BUFFER=y
CONFIG_EVENT_TRACING=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_TRACING=y
CONFIG_GENERIC_TRACER=y
CONFIG_TRACING_SUPPORT=y
CONFIG_FTRACE=y
CONFIG_TRACEFS_AUTOMOUNT_DEPRECATED=y
# CONFIG_BOOTTIME_TRACING is not set
# CONFIG_FUNCTION_TRACER is not set
# CONFIG_STACK_TRACER is not set
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_PREEMPT_TRACER is not set
# CONFIG_SCHED_TRACER is not set
# CONFIG_HWLAT_TRACER is not set
# CONFIG_OSNOISE_TRACER is not set
# CONFIG_TIMERLAT_TRACER is not set
# CONFIG_MMIOTRACE is not set
# CONFIG_FTRACE_SYSCALLS is not set
# CONFIG_TRACER_SNAPSHOT is not set
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_KPROBE_EVENTS=y
CONFIG_UPROBE_EVENTS=y
CONFIG_EPROBE_EVENTS=y
CONFIG_DYNAMIC_EVENTS=y
CONFIG_PROBE_EVENTS=y
# CONFIG_SYNTH_EVENTS is not set
# CONFIG_USER_EVENTS is not set
# CONFIG_HIST_TRIGGERS is not set
# CONFIG_TRACE_EVENT_INJECT is not set
# CONFIG_TRACEPOINT_BENCHMARK is not set
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_TRACE_EVAL_MAP_FILE is not set
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set
# CONFIG_RING_BUFFER_PERSISTENT_INJECT is not set
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_KPROBE_EVENT_GEN_TEST is not set
# CONFIG_RV is not set
# CONFIG_TRACE_REMOTE_TEST is not set
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
# CONFIG_SAMPLES is not set
CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y
CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
CONFIG_STRICT_DEVMEM=y
# CONFIG_IO_STRICT_DEVMEM is not set

#
# x86 Debugging
#
CONFIG_EARLY_PRINTK_USB=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
CONFIG_EARLY_PRINTK_DBGP=y
# CONFIG_EARLY_PRINTK_USB_XDBC is not set
# CONFIG_EFI_PGT_DUMP is not set
# CONFIG_DEBUG_TLBFLUSH is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
# CONFIG_X86_DECODER_SELFTEST is not set
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEBUG_BOOT_PARAMS=y
# CONFIG_CPA_DEBUG is not set
CONFIG_DEBUG_ENTRY=y
# CONFIG_DEBUG_NMI_SELFTEST is not set
CONFIG_X86_DEBUG_FPU=y
# CONFIG_PUNIT_ATOM_DEBUG is not set
CONFIG_UNWINDER_ORC=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
# end of x86 Debugging

#
# Kernel Testing and Coverage
#
# CONFIG_KUNIT is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
# CONFIG_FUNCTION_ERROR_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set
CONFIG_ARCH_HAS_KCOV=y
CONFIG_KCOV=y
CONFIG_KCOV_ENABLE_COMPARISONS=y
CONFIG_KCOV_INSTRUMENT_ALL=y
CONFIG_KCOV_IRQ_AREA_SIZE=0x40000
# CONFIG_KCOV_SELFTEST is not set
CONFIG_RUNTIME_TESTING_MENU=y
# CONFIG_TEST_DHRY is not set
# CONFIG_LKDTM is not set
# CONFIG_TEST_DIV64 is not set
# CONFIG_TEST_MULDIV64 is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_TEST_REF_TRACKER is not set
# CONFIG_RBTREE_TEST is not set
# CONFIG_REED_SOLOMON_TEST is not set
# CONFIG_INTERVAL_TREE_TEST is not set
# CONFIG_PERCPU_TEST is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_TEST_BITMAP is not set
# CONFIG_TEST_XARRAY is not set
# CONFIG_TEST_MAPLE_TREE is not set
# CONFIG_TEST_RHASHTABLE is not set
# CONFIG_TEST_IDA is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_BITOPS is not set
# CONFIG_TEST_VMALLOC is not set
# CONFIG_TEST_WORKQUEUE is not set
# CONFIG_TEST_BPF is not set
# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_TEST_FIRMWARE is not set
# CONFIG_TEST_SYSCTL is not set
# CONFIG_TEST_UDELAY is not set
# CONFIG_TEST_STATIC_KEYS is not set
# CONFIG_TEST_KMOD is not set
# CONFIG_TEST_KALLSYMS is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
# CONFIG_TEST_FREE_PAGES is not set
# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set
# CONFIG_TEST_OBJPOOL is not set
CONFIG_ARCH_USE_MEMTEST=y
# CONFIG_MEMTEST is not set
# end of Kernel Testing and Coverage

#
# Rust hacking
#
# end of Rust hacking
# end of Kernel hacking

CONFIG_IO_URING_ZCRX=y
CONFIG_IO_URING_BPF=y

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-06-24 23:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-24 19:04 [BUG] netfilter: nft_fib: NULL-ptr-deref (GPF) in nft_fib6_eval on netdev egress hook Theodor Arsenij Larionov-Trichkine
2026-06-24 20:19 ` Florian Westphal
2026-06-24 22:23   ` Pablo Neira Ayuso
2026-06-24 23:47     ` Florian Westphal

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.