perf: arm_pmuv3: Fix kernel panic on UBSAN from negative hw.idx in armv8pmu_enable/disable_event()
PATCH 1/1 perf: arm_pmuv3: Fix kernel panic on UBSAN from negative hw.idx in armv8pmu_enable/disable_event()
When 'event->hw.idx' was negative in armv8pmu_enable/disable_event().
UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:716:25 shift exponent -1 is negative UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:658:13 shift exponent -1 is negative
This occurred because a perf_event could reach armv8pmu event with a negative idx, typically when a valid counter could not be allocated.
This issue was observed when running KVM on Radxa's Orion6 platform.
The issue was previously guarded indirectly by armv8pmu_event_is_chained(), which internally warned and returned false for idx < 0. But since the commit 29227d6ea157 ("arm64: perf: Clean up enable/disable calls"), this check was removed.
To prevent undefined behavior, add an explicit guard to early return from armv8pmu event if hw.idx < 0, similar to handling in other PMU drivers. (e.g. intel_pmu_disable_event() on arch/x86/events/intel/core.c)
$ ./syz-execprog -executor=./syz-executor -repeat=0 -sandbox=none \ -disable=binfmt_misc,cgroups,close_fds,devlink_pci,ieee802154,net_dev,net_reset,nic_vf,swap,sysctl,tun,usb,vhci,wifi \ -procs=8 perf.syz
r0 = perf_event_open(&(0x7f0000000240)={
0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@perf_config_ext
}, 0x0, 0x0, 0xffffffffffffffff, 0x0)perf_event_open(&(0x7f0000000280)={
0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
@perf_config_ext
}, 0x0, 0x0, r0, 0x0)perf_event_open(&(0x7f0000000540)={
0x3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
@perf_bp={0x0, 0x2}, 0x20, 0x0, 0x0, 0x0, 0x2,
0x0, 0x0, 0x0, 0x0, 0x0, 0x81
}, 0x0, 0x0, r0, 0x0)------------[ cut here ]------------ UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:716:25 shift exponent -1 is negative CPU: 0 UID: 0 PID: 8405 Comm: syz.3.19 Tainted: G W 6.16.0-rc2-g5982a539cdce #3 PREEMPT Tainted: [W]=WARN Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025 Call trace: show_stack+0x2c/0x3c (C) __dump_stack+0x30/0x40 dump_stack_lvl+0xd8/0x12c dump_stack+0x1c/0x28 ubsan_epilogue+0x14/0x48 __ubsan_handle_shift_out_of_bounds+0x2b0/0x34c armv8pmu_enable_event+0x3c4/0x4b0 armpmu_start+0xc4/0x118 perf_event_unthrottle_group+0x3a8/0x50c perf_adjust_freq_unthr_events+0x2f4/0x578 perf_adjust_freq_unthr_context+0x278/0x46c perf_event_task_tick+0x394/0x5b0 sched_tick+0x314/0x6cc update_process_times+0x374/0x4b0 tick_nohz_handler+0x334/0x480 __hrtimer_run_queues+0x3ec/0xb78 hrtimer_interrupt+0x2b8/0xb50 arch_timer_handler_virt+0x74/0x88 handle_percpu_devid_irq+0x174/0x308 generic_handle_domain_irq+0xe0/0x140 gic_handle_irq+0x6c/0x190 call_on_irq_stack+0x24/0x30 do_interrupt_handler+0xd4/0x138 el1_interrupt+0x34/0x54 el1h_64_irq_handler+0x18/0x24 el1h_64_irq+0x6c/0x70 generic_exec_single+0x2dc/0x304 (P) smp_call_function_single+0x308/0x530 perf_install_in_context+0x4a0/0x798 __arm64_sys_perf_event_open+0x184c/0x1d50 invoke_syscall+0x98/0x2b8 el0_svc_common+0x130/0x23c do_el0_svc+0x48/0x58 el0_svc+0x58/0x17c el0t_64_sync_handler+0x78/0x108 el0t_64_sync+0x198/0x19c ---[ end trace ]--- ------------[ cut here ]------------ UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:658:13 shift exponent -1 is negative CPU: 0 UID: 0 PID: 8006 Comm: syz.0.19 Not tainted 6.16.0-rc2-g5982a539cdce #3 PREEMPT Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025 Call trace: show_stack+0x2c/0x3c (C) __dump_stack+0x30/0x40 dump_stack_lvl+0xd8/0x12c dump_stack+0x1c/0x28 ubsan_epilogue+0x14/0x48 __ubsan_handle_shift_out_of_bounds+0x2b0/0x34c armv8pmu_disable_event+0x228/0x2f8 armpmu_stop+0xa0/0x104 perf_event_throttle_group+0x354/0x4cc __perf_event_account_interrupt+0x26c/0x290 __perf_event_overflow+0xe8/0xd28 perf_event_overflow+0x38/0x4c armv8pmu_handle_irq+0x244/0x320 armpmu_dispatch_irq+0x6c/0x9c handle_percpu_devid_irq+0x174/0x308 generic_handle_domain_irq+0xe0/0x140 gic_handle_irq+0x6c/0x190 call_on_irq_stack+0x24/0x30 do_interrupt_handler+0xd4/0x138 el1_interrupt+0x34/0x54 el1h_64_irq_handler+0x18/0x24 el1h_64_irq+0x6c/0x70 generic_exec_single+0x2dc/0x304 (P) smp_call_function_single+0x308/0x530 perf_install_in_context+0x4a0/0x798 __arm64_sys_perf_event_open+0x184c/0x1d50 invoke_syscall+0x98/0x2b8 el0_svc_common+0x130/0x23c do_el0_svc+0x48/0x58 el0_svc+0x58/0x17c el0t_64_sync_handler+0x78/0x108 el0t_64_sync+0x198/0x19c ---[ end trace ]--- ------------[ cut here ]------------ UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:730:26 shift exponent -1 is negative CPU: 0 UID: 0 PID: 8006 Comm: syz.0.19 Not tainted 6.16.0-rc2-g5982a539cdce #3 PREEMPT Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025 Call trace: show_stack+0x2c/0x3c (C) __dump_stack+0x30/0x40 dump_stack_lvl+0xd8/0x12c dump_stack+0x1c/0x28 ubsan_epilogue+0x14/0x48 __ubsan_handle_shift_out_of_bounds+0x2b0/0x34c armv8pmu_disable_event+0x298/0x2f8 armpmu_stop+0xa0/0x104 perf_event_throttle_group+0x354/0x4cc __perf_event_account_interrupt+0x26c/0x290 __perf_event_overflow+0xe8/0xd28 perf_event_overflow+0x38/0x4c armv8pmu_handle_irq+0x244/0x320 armpmu_dispatch_irq+0x6c/0x9c handle_percpu_devid_irq+0x174/0x308 generic_handle_domain_irq+0xe0/0x140 gic_handle_irq+0x6c/0x190 call_on_irq_stack+0x24/0x30 do_interrupt_handler+0xd4/0x138 el1_interrupt+0x34/0x54 el1h_64_irq_handler+0x18/0x24 el1h_64_irq+0x6c/0x70 generic_exec_single+0x2dc/0x304 (P) smp_call_function_single+0x308/0x530 perf_install_in_context+0x4a0/0x798 __arm64_sys_perf_event_open+0x184c/0x1d50 invoke_syscall+0x98/0x2b8 el0_svc_common+0x130/0x23c do_el0_svc+0x48/0x58 el0_svc+0x58/0x17c el0t_64_sync_handler+0x78/0x108 el0t_64_sync+0x198/0x19c ---[ end trace ]---
--- drivers/perf/arm_pmuv3.c | 6 ++++++ 1 file changed, 6 insertions(+)
drivers/perf/arm_pmuv3.c +6 -0
@@ -795,6 +795,9 @@ static void armv8pmu_enable_user_access(struct arm_pmu *cpu_pmu)static void armv8pmu_enable_event (struct perf_event *event) { +if (unlikely (event->hw.idx <0 )) +return ; +armv8pmu_write_event_type (event);armv8pmu_enable_event_irq (event);armv8pmu_enable_event_counter (event);
@@ -802,6 +805,9 @@ static void armv8pmu_enable_event(struct perf_event *event)static void armv8pmu_disable_event (struct perf_event *event) { +if (unlikely (event->hw.idx <0 )) +return ; +armv8pmu_disable_event_counter (event);armv8pmu_disable_event_irq (event); }
Signature · 1 line
2.50.0
Mark Rutland
maintainer[ dropping Hemendra, since he doens't need to be spammed with ML traffic ]
Quoted 10 lines · Yunseong Kim
When '
event->hw.idx' was negative in armv8pmu_enable/disable_event().UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:716:25 shift exponent -1 is negative UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:658:13 shift exponent -1 is negativeThis occurred because a
perf_eventcould reach armv8pmu event with a negative idx, typically when a valid counter could not be allocated.
These functions are never supposed to be called for an event with a negative idx. For that to happen there must either be an earlier bug (at the time of pmu::add()) or there's a concurrency bug.
Quoted 1 line
This issue was observed when running KVM on Radxa's Orion6 platform.
Do you mean that you see this on the host, or in a guest?
Are you using pseudo-NMI?
Quoted 4 lines
The issue was previously guarded indirectly by
armv8pmu_event_is_chained(), which internally warned and returned false for idx < 0. But since the commit29227d6ea157("arm64: perf: Clean up enable/disable calls"), this check was removed.
The warning there was because this case *should not happen*, and returning false was a way of minimizing the risk of a crash before the warning was logged.
I don't think that armv8pmu_event_is_chained() would avoid the UBSAN splat. Prior to commit 29227d6ea157 we had:
| static inline void armv8pmu_enable_event_counter(struct perf_event *event)
| {
| struct perf_event_attr *attr = &event->attr;
| int idx = event->hw.idx;
|
| ...
|
| if (!kvm_pmu_counter_deferred(attr)) {
| armv8pmu_enable_counter(idx);
| if (armv8pmu_event_is_chained(event))
| armv8pmu_enable_counter(idx - 1);
| }
| }Note the first call to armv8pmu_enable_counter(idx), so this wouldn't help for an event with event->hw.idx==-1, and the only other way we could get here is with a chained event with event->hw.idx==0, which is not valid.
Quoted 2 lines
To prevent undefined behavior, add an explicit guard to early return from armv8pmu event if hw.idx < 0,
That is not a correct fix, and simply hides the real bug. It should not be possible to reach this code when hw.idx < 0, and idx should be >= 0 whenever pmu::add() succeeds.
Quoted 2 lines
similar to handling in other PMU drivers.
(e.g.intel_pmu_disable_event()onarch/x86/events/intel/core.c)
I think what you're saying here is that intel_pmu_disable_event() will pr_warn() and return early in this case. As above, that is because this case is not expected to occur, and indicates a bug elsewhere.
Quoted 22 lines
$ ./syz-execprog -executor=./syz-executor -repeat=0 -sandbox=none \ -disable=binfmt_misc,cgroups,close_fds,devlink_pci,ieee802154,net_dev,net_reset,nic_vf,swap,sysctl,tun,usb,vhci,wifi \ -procs=8 perf.syzr0 = perf_event_open(&(0x7f0000000240)={ 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext }, 0x0, 0x0, 0xffffffffffffffff, 0x0)perf_event_open(&(0x7f0000000280)={ 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext }, 0x0, 0x0, r0, 0x0)
Quoted 9 lines
perf_event_open(&(0x7f0000000540)={
0x3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
@perf_bp={0x0, 0x2}, 0x20, 0x0, 0x0, 0x0, 0x2,
0x0, 0x0, 0x0, 0x0, 0x0, 0x81
}, 0x0, 0x0, r0, 0x0)This isn't all that helpful for reproducing the issue. Are the later lines the contents of 'perf.syz'? My local build of syz-execprog can't seem to parse this and prints help/usage.
Has your syzkaller instance managed to generate a C reproducer that you can share?
It should be possible to manually build a test from the above, but that's rather tedious.
Quoted 11 lines
------------[ cut here ]------------ UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:716:25 shift exponent -1 is negative CPU: 0 UID: 0 PID: 8405 Comm: syz.3.19 Tainted: G W 6.16.0-rc2-g5982a539cdce #3 PREEMPT Tainted: [W]=WARN Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025 Call trace: show_stack+0x2c/0x3c (C) __dump_stack+0x30/0x40 dump_stack_lvl+0xd8/0x12c dump_stack+0x1c/0x28
Quoted 8 lines
ubsan_epilogue+0x14/0x48 __ubsan_handle_shift_out_of_bounds+0x2b0/0x34c armv8pmu_enable_event+0x3c4/0x4b0 armpmu_start+0xc4/0x118 perf_event_unthrottle_group+0x3a8/0x50c perf_adjust_freq_unthr_events+0x2f4/0x578 perf_adjust_freq_unthr_context+0x278/0x46c perf_event_task_tick+0x394/0x5b0
AFAICT perf_event_task_tick() is called with IRQs masked, and perf_adjust_freq_unthr_context() disables the PMU for the duration of the state manipulation, so this shouldn't be able to race with anything that's using appropriate IRQ masking.
This might be able to race with a pNMI though, and it looks like we're not entirely robust.
Quoted 45 lines
sched_tick+0x314/0x6cc update_process_times+0x374/0x4b0 tick_nohz_handler+0x334/0x480 __hrtimer_run_queues+0x3ec/0xb78 hrtimer_interrupt+0x2b8/0xb50 arch_timer_handler_virt+0x74/0x88 handle_percpu_devid_irq+0x174/0x308 generic_handle_domain_irq+0xe0/0x140 gic_handle_irq+0x6c/0x190 call_on_irq_stack+0x24/0x30 do_interrupt_handler+0xd4/0x138 el1_interrupt+0x34/0x54 el1h_64_irq_handler+0x18/0x24 el1h_64_irq+0x6c/0x70 generic_exec_single+0x2dc/0x304 (P) smp_call_function_single+0x308/0x530 perf_install_in_context+0x4a0/0x798 __arm64_sys_perf_event_open+0x184c/0x1d50 invoke_syscall+0x98/0x2b8 el0_svc_common+0x130/0x23c do_el0_svc+0x48/0x58 el0_svc+0x58/0x17c el0t_64_sync_handler+0x78/0x108 el0t_64_sync+0x198/0x19c ---[ end trace ]--- ------------[ cut here ]------------ UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:658:13 shift exponent -1 is negative CPU: 0 UID: 0 PID: 8006 Comm: syz.0.19 Not tainted 6.16.0-rc2-g5982a539cdce #3 PREEMPT Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025 Call trace: show_stack+0x2c/0x3c (C) __dump_stack+0x30/0x40 dump_stack_lvl+0xd8/0x12c dump_stack+0x1c/0x28 ubsan_epilogue+0x14/0x48 __ubsan_handle_shift_out_of_bounds+0x2b0/0x34c armv8pmu_disable_event+0x228/0x2f8 armpmu_stop+0xa0/0x104 perf_event_throttle_group+0x354/0x4cc __perf_event_account_interrupt+0x26c/0x290 __perf_event_overflow+0xe8/0xd28 perf_event_overflow+0x38/0x4c armv8pmu_handle_irq+0x244/0x320 armpmu_dispatch_irq+0x6c/0x9c
Quoted 8 lines
handle_percpu_devid_irq+0x174/0x308 generic_handle_domain_irq+0xe0/0x140 gic_handle_irq+0x6c/0x190 call_on_irq_stack+0x24/0x30 do_interrupt_handler+0xd4/0x138 el1_interrupt+0x34/0x54 el1h_64_irq_handler+0x18/0x24 el1h_64_irq+0x6c/0x70
This indicates a regular IRQ rather than a pNMI.
Quoted 51 lines
generic_exec_single+0x2dc/0x304 (P) smp_call_function_single+0x308/0x530 perf_install_in_context+0x4a0/0x798 __arm64_sys_perf_event_open+0x184c/0x1d50 invoke_syscall+0x98/0x2b8 el0_svc_common+0x130/0x23c do_el0_svc+0x48/0x58 el0_svc+0x58/0x17c el0t_64_sync_handler+0x78/0x108 el0t_64_sync+0x198/0x19c ---[ end trace ]--- ------------[ cut here ]------------ UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:730:26 shift exponent -1 is negative CPU: 0 UID: 0 PID: 8006 Comm: syz.0.19 Not tainted 6.16.0-rc2-g5982a539cdce #3 PREEMPT Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025 Call trace: show_stack+0x2c/0x3c (C) __dump_stack+0x30/0x40 dump_stack_lvl+0xd8/0x12c dump_stack+0x1c/0x28 ubsan_epilogue+0x14/0x48 __ubsan_handle_shift_out_of_bounds+0x2b0/0x34c armv8pmu_disable_event+0x298/0x2f8 armpmu_stop+0xa0/0x104 perf_event_throttle_group+0x354/0x4cc __perf_event_account_interrupt+0x26c/0x290 __perf_event_overflow+0xe8/0xd28 perf_event_overflow+0x38/0x4c armv8pmu_handle_irq+0x244/0x320 armpmu_dispatch_irq+0x6c/0x9c handle_percpu_devid_irq+0x174/0x308 generic_handle_domain_irq+0xe0/0x140 gic_handle_irq+0x6c/0x190 call_on_irq_stack+0x24/0x30 do_interrupt_handler+0xd4/0x138 el1_interrupt+0x34/0x54 el1h_64_irq_handler+0x18/0x24 el1h_64_irq+0x6c/0x70 generic_exec_single+0x2dc/0x304 (P) smp_call_function_single+0x308/0x530 perf_install_in_context+0x4a0/0x798 __arm64_sys_perf_event_open+0x184c/0x1d50 invoke_syscall+0x98/0x2b8 el0_svc_common+0x130/0x23c do_el0_svc+0x48/0x58 el0_svc+0x58/0x17c el0t_64_sync_handler+0x78/0x108 el0t_64_sync+0x198/0x19c ---[ end trace ]---
Quoted 1 line
Fixes 29227d6ea157 ("arm64: perf: Clean up enable/disable calls")
As above, I do not believe that this fixes tag is accurate.
Quoted 23 lines
Signed-off-by Yunseong Kim <[email protected]>Tested-by Yunseong Kim <[email protected]>Cc Yeoreum Yun <[email protected]>--- drivers/perf/arm_pmuv3.c | 6 ++++++ 1 file changed, 6 insertions(+)drivers/perf/arm_pmuv3.c +3
-0@@ -795,6 +795,9 @@ static void armv8pmu_enable_user_access(struct arm_pmu *cpu_pmu)static void armv8pmu_enable_event (struct perf_event *event) { +if (unlikely (event->hw.idx <0 )) +return ; +armv8pmu_write_event_type (event);armv8pmu_enable_event_irq (event);armv8pmu_enable_event_counter (event);
drivers/perf/arm_pmuv3.c static void armv8pmu_enable_event(struct perf_event *event) · line 812
Quoted 8 lines
drivers/perf/arm_pmuv3.c +3
-0@@ -802,6 +805,9 @@ static void armv8pmu_enable_event(struct perf_event *event)static void armv8pmu_disable_event (struct perf_event *event) { +if (unlikely (event->hw.idx <0 )) +return ; +armv8pmu_disable_event_counter (event);armv8pmu_disable_event_irq (event);
As above, this is not a correct fix, and NAK to silently ignoring an invalid idx.
Mark.
Mark Rutland
maintainerQuoted 11 lines · Mark Rutland
[ dropping Hemendra, since he doens't need to be spammed with ML traffic ]
Quoted 8 lines · Yunseong Kim
When '
event->hw.idx' was negative in armv8pmu_enable/disable_event().UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:716:25 shift exponent -1 is negative UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:658:13 shift exponent -1 is negative
Quoted 6 lines
Quoted 2 lines
This occurred because a
perf_eventcould reach armv8pmu event with a negative idx, typically when a valid counter could not be allocated.These functions are never supposed to be called for an event with a negative idx. For that to happen there must either be an earlier bug (at the time of
pmu::add()) or there's a concurrency bug.
AFAICT this is a result of the group throttling logic introduced in commit:
9734e25fbf5ae68e ("perf: Fix the throttle logic for a group")
That doesn't take into account that sibling events could have event->state <= PERF_EVENT_STATE_OFF, e.g. by virtue of perf_event_attr::disabled. For those events, event_sched_in() won't initialise the event, e.g. won't call event->pmu->add().
Thus when perf_event_throttle_group() and perf_event_unthrottle_group() iterate over events with:
for_each_sibling_event(sibling, leader) perf_event_[un]throttle(sibling, ...);
... perf_event_[un]throttle() will call event->pmu->stop() and event->pmu->start() for those disabled events, resulting in the UBSAN splat above since they don't have a hw idx (which is assigned by event->pmu->add()).
I think the event's state needs to be taken into account somewhere during throttling. Given the sample of event_sched_in(), I'd assume that should be in the core code, rather than in each architecture's pmu::{start,stop}().
I can reproduce this locally with:
| #include <stdio.h>
| #include <stdlib.h>
| #include <unistd.h>
|
| #include <sys/syscall.h>
| #include <sys/types.h>
|
| #include <linux/perf_event.h>
|
| static int perf_event_open(struct perf_event_attr *attr, pid_t pid, int cpu,
| int group_fd, unsigned long flags)
| {
| return syscall(__NR_perf_event_open, attr, pid, cpu, group_fd, flags);
| }
|
| struct perf_event_attr attr_parent = {
| .type = PERF_TYPE_HARDWARE,
| .size = sizeof(attr_parent),
| .config = PERF_COUNT_HW_CPU_CYCLES,
| .sample_period = 1,
| .exclude_kernel = 1,
| };
|
| struct perf_event_attr attr_child = {
| .type = PERF_TYPE_HARDWARE,
| .size = sizeof(attr_child),
| .config = PERF_COUNT_HW_CPU_CYCLES,
| .exclude_kernel = 1,
| .disabled = 1,
| };
|
| int main(int argc, char *argv[])
| {
| int parent, child;
|
| parent = perf_event_open(&attr_parent, 0, -1, -1, 0);
| if (parent < 0) {
| fprintf(stderr, "Unable to create event: %d\n", parent);
| exit (-1);
| }
|
| child = perf_event_open(&attr_child, 0, -1, parent, 0);
| if (child < 0) {
| fprintf(stderr, "Unable to create event: %d\n", child);
| exit (-1);
| }
|
| for (;;) {
| asm("" ::: "memory");
| }
|
| return 0;
| }I've kept the context below for anyone new to this thread, but hopefully the above is clear?
Mark.
Quoted 269 lines
Quoted 1 line
This issue was observed when running KVM on Radxa's Orion6 platform.
Do you mean that you see this on the host, or in a guest?
Are you using pseudo-NMI?
Quoted 4 lines
The issue was previously guarded indirectly by
armv8pmu_event_is_chained(), which internally warned and returned false for idx < 0. But since the commit29227d6ea157("arm64: perf: Clean up enable/disable calls"), this check was removed.The warning there was because this case *should not happen*, and returning false was a way of minimizing the risk of a crash before the warning was logged.
I don't think that
armv8pmu_event_is_chained()would avoid the UBSAN splat. Prior to commit29227d6ea157we had:| static inline void armv8pmu_enable_event_counter(struct perf_event *event) | { | struct perf_event_attr *attr = &event->attr; | int idx = event->hw.idx; | | ... | | if (!kvm_pmu_counter_deferred(attr)) { | armv8pmu_enable_counter(idx); | if (armv8pmu_event_is_chained(event)) | armv8pmu_enable_counter(idx - 1); | } | }Note the first call to
armv8pmu_enable_counter(idx), so this wouldn't help for an event with event->hw.idx==-1, and the only other way we could get here is with a chained event with event->hw.idx==0, which is not valid.Quoted 2 lines
To prevent undefined behavior, add an explicit guard to early return from armv8pmu event if hw.idx < 0,
That is not a correct fix, and simply hides the real bug. It should not be possible to reach this code when hw.idx < 0, and idx should be >= 0 whenever
pmu::add()succeeds.Quoted 2 lines
similar to handling in other PMU drivers.
(e.g.intel_pmu_disable_event()onarch/x86/events/intel/core.c)I think what you're saying here is that
intel_pmu_disable_event()willpr_warn()and return early in this case. As above, that is because this case is not expected to occur, and indicates a bug elsewhere.Quoted 22 lines
$ ./syz-execprog -executor=./syz-executor -repeat=0 -sandbox=none \ -disable=binfmt_misc,cgroups,close_fds,devlink_pci,ieee802154,net_dev,net_reset,nic_vf,swap,sysctl,tun,usb,vhci,wifi \ -procs=8 perf.syzr0 = perf_event_open(&(0x7f0000000240)={ 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext }, 0x0, 0x0, 0xffffffffffffffff, 0x0)perf_event_open(&(0x7f0000000280)={ 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext }, 0x0, 0x0, r0, 0x0)Quoted 9 lines
perf_event_open(&(0x7f0000000540)={ 0x3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, @perf_bp={0x0, 0x2}, 0x20, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x81 }, 0x0, 0x0, r0, 0x0)This isn't all that helpful for reproducing the issue. Are the later lines the contents of 'perf.syz'? My local build of syz-execprog can't seem to parse this and prints help/usage.
Has your syzkaller instance managed to generate a C reproducer that you can share?
It should be possible to manually build a test from the above, but that's rather tedious.
Quoted 11 lines
------------[ cut here ]------------ UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:716:25 shift exponent -1 is negative CPU: 0 UID: 0 PID: 8405 Comm: syz.3.19 Tainted: G W 6.16.0-rc2-g5982a539cdce #3 PREEMPT Tainted: [W]=WARN Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025 Call trace: show_stack+0x2c/0x3c (C) __dump_stack+0x30/0x40 dump_stack_lvl+0xd8/0x12c dump_stack+0x1c/0x28Quoted 8 lines
ubsan_epilogue+0x14/0x48 __ubsan_handle_shift_out_of_bounds+0x2b0/0x34c armv8pmu_enable_event+0x3c4/0x4b0 armpmu_start+0xc4/0x118 perf_event_unthrottle_group+0x3a8/0x50c perf_adjust_freq_unthr_events+0x2f4/0x578 perf_adjust_freq_unthr_context+0x278/0x46c perf_event_task_tick+0x394/0x5b0AFAICT
perf_event_task_tick()is called with IRQs masked, andperf_adjust_freq_unthr_context()disables the PMU for the duration of the state manipulation, so this shouldn't be able to race with anything that's using appropriate IRQ masking.This might be able to race with a pNMI though, and it looks like we're not entirely robust.
Quoted 45 lines
sched_tick+0x314/0x6cc update_process_times+0x374/0x4b0 tick_nohz_handler+0x334/0x480 __hrtimer_run_queues+0x3ec/0xb78 hrtimer_interrupt+0x2b8/0xb50 arch_timer_handler_virt+0x74/0x88 handle_percpu_devid_irq+0x174/0x308 generic_handle_domain_irq+0xe0/0x140 gic_handle_irq+0x6c/0x190 call_on_irq_stack+0x24/0x30 do_interrupt_handler+0xd4/0x138 el1_interrupt+0x34/0x54 el1h_64_irq_handler+0x18/0x24 el1h_64_irq+0x6c/0x70 generic_exec_single+0x2dc/0x304 (P) smp_call_function_single+0x308/0x530 perf_install_in_context+0x4a0/0x798 __arm64_sys_perf_event_open+0x184c/0x1d50 invoke_syscall+0x98/0x2b8 el0_svc_common+0x130/0x23c do_el0_svc+0x48/0x58 el0_svc+0x58/0x17c el0t_64_sync_handler+0x78/0x108 el0t_64_sync+0x198/0x19c ---[ end trace ]--- ------------[ cut here ]------------ UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:658:13 shift exponent -1 is negative CPU: 0 UID: 0 PID: 8006 Comm: syz.0.19 Not tainted 6.16.0-rc2-g5982a539cdce #3 PREEMPT Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025 Call trace: show_stack+0x2c/0x3c (C) __dump_stack+0x30/0x40 dump_stack_lvl+0xd8/0x12c dump_stack+0x1c/0x28 ubsan_epilogue+0x14/0x48 __ubsan_handle_shift_out_of_bounds+0x2b0/0x34c armv8pmu_disable_event+0x228/0x2f8 armpmu_stop+0xa0/0x104 perf_event_throttle_group+0x354/0x4cc __perf_event_account_interrupt+0x26c/0x290 __perf_event_overflow+0xe8/0xd28 perf_event_overflow+0x38/0x4c armv8pmu_handle_irq+0x244/0x320 armpmu_dispatch_irq+0x6c/0x9cQuoted 8 lines
handle_percpu_devid_irq+0x174/0x308 generic_handle_domain_irq+0xe0/0x140 gic_handle_irq+0x6c/0x190 call_on_irq_stack+0x24/0x30 do_interrupt_handler+0xd4/0x138 el1_interrupt+0x34/0x54 el1h_64_irq_handler+0x18/0x24 el1h_64_irq+0x6c/0x70This indicates a regular IRQ rather than a pNMI.
Quoted 51 lines
generic_exec_single+0x2dc/0x304 (P) smp_call_function_single+0x308/0x530 perf_install_in_context+0x4a0/0x798 __arm64_sys_perf_event_open+0x184c/0x1d50 invoke_syscall+0x98/0x2b8 el0_svc_common+0x130/0x23c do_el0_svc+0x48/0x58 el0_svc+0x58/0x17c el0t_64_sync_handler+0x78/0x108 el0t_64_sync+0x198/0x19c ---[ end trace ]--- ------------[ cut here ]------------ UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:730:26 shift exponent -1 is negative CPU: 0 UID: 0 PID: 8006 Comm: syz.0.19 Not tainted 6.16.0-rc2-g5982a539cdce #3 PREEMPT Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025 Call trace: show_stack+0x2c/0x3c (C) __dump_stack+0x30/0x40 dump_stack_lvl+0xd8/0x12c dump_stack+0x1c/0x28 ubsan_epilogue+0x14/0x48 __ubsan_handle_shift_out_of_bounds+0x2b0/0x34c armv8pmu_disable_event+0x298/0x2f8 armpmu_stop+0xa0/0x104 perf_event_throttle_group+0x354/0x4cc __perf_event_account_interrupt+0x26c/0x290 __perf_event_overflow+0xe8/0xd28 perf_event_overflow+0x38/0x4c armv8pmu_handle_irq+0x244/0x320 armpmu_dispatch_irq+0x6c/0x9c handle_percpu_devid_irq+0x174/0x308 generic_handle_domain_irq+0xe0/0x140 gic_handle_irq+0x6c/0x190 call_on_irq_stack+0x24/0x30 do_interrupt_handler+0xd4/0x138 el1_interrupt+0x34/0x54 el1h_64_irq_handler+0x18/0x24 el1h_64_irq+0x6c/0x70 generic_exec_single+0x2dc/0x304 (P) smp_call_function_single+0x308/0x530 perf_install_in_context+0x4a0/0x798 __arm64_sys_perf_event_open+0x184c/0x1d50 invoke_syscall+0x98/0x2b8 el0_svc_common+0x130/0x23c do_el0_svc+0x48/0x58 el0_svc+0x58/0x17c el0t_64_sync_handler+0x78/0x108 el0t_64_sync+0x198/0x19c ---[ end trace ]---Quoted 1 line
Fixes 29227d6ea157 ("arm64: perf: Clean up enable/disable calls")As above, I do not believe that this fixes tag is accurate.
Quoted 23 lines
Signed-off-by Yunseong Kim <[email protected]>Tested-by Yunseong Kim <[email protected]>Cc Yeoreum Yun <[email protected]>--- drivers/perf/arm_pmuv3.c | 6 ++++++ 1 file changed, 6 insertions(+)drivers/perf/arm_pmuv3.c +3
-0@@ -795,6 +795,9 @@ static void armv8pmu_enable_user_access(struct arm_pmu *cpu_pmu)static void armv8pmu_enable_event (struct perf_event *event) { +if (unlikely (event->hw.idx <0 )) +return ; +armv8pmu_write_event_type (event);armv8pmu_enable_event_irq (event);armv8pmu_enable_event_counter (event);drivers/perf/arm_pmuv3.c static void armv8pmu_enable_event(struct perf_event *event) · line 812
Quoted 8 lines
drivers/perf/arm_pmuv3.c +3
-0@@ -802,6 +805,9 @@ static void armv8pmu_enable_event(struct perf_event *event)static void armv8pmu_disable_event (struct perf_event *event) { +if (unlikely (event->hw.idx <0 )) +return ; +armv8pmu_disable_event_counter (event);armv8pmu_disable_event_irq (event);As above, this is not a correct fix, and NAK to silently ignoring an invalid idx.
Mark.
Hi Mark, thanks so much for taking the time to review this!
Quoted 40 lines · Mark Rutland
Quoted 11 lines · Mark Rutland
[ dropping Hemendra, since he doens't need to be spammed with ML traffic ]
Quoted 8 lines · Yunseong Kim
When '
event->hw.idx' was negative in armv8pmu_enable/disable_event().UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:716:25 shift exponent -1 is negative UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:658:13 shift exponent -1 is negativeQuoted 6 lines
Quoted 2 lines
This occurred because a
perf_eventcould reach armv8pmu event with a negative idx, typically when a valid counter could not be allocated.These functions are never supposed to be called for an event with a negative idx. For that to happen there must either be an earlier bug (at the time of
pmu::add()) or there's a concurrency bug.AFAICT this is a result of the group throttling logic introduced in commit:
9734e25fbf5ae68e("perf: Fix the throttle logic for a group")That doesn't take into account that sibling events could have
event->state<=PERF_EVENT_STATE_OFF, e.g. by virtue ofperf_event_attr::disabled. For those events,event_sched_in()won't initialise the event, e.g. won't callevent->pmu->add().Thus when
perf_event_throttle_group()andperf_event_unthrottle_group()iterate over events with:for_each_sibling_event(sibling, leader) perf_event_[un]throttle(sibling, ...);... perf_event_[un]throttle() will call
event->pmu->stop()andevent->pmu->start()for those disabled events, resulting in the UBSAN splat above since they don't have a hw idx (which is assigned byevent->pmu->add()).
Quoted 4 lines
I think the event's state needs to be taken into account somewhere during throttling. Given the sample of
event_sched_in(), I'd assume that should be in the core code, rather than in each architecture's pmu::{start,stop}().
Appreciate your guidance on this.
I'll revise the relevant part of the code and run some tests again to see if the issue still reproduces after the adjustment.
Quoted 56 lines
I can reproduce this locally with:
| #include <stdio.h> | #include <stdlib.h> | #include <unistd.h> | | #include <sys/syscall.h> | #include <sys/types.h> | | #include <linux/perf_event.h> | | static int perf_event_open(struct perf_event_attr *attr, pid_t pid, int cpu, | int group_fd, unsigned long flags) | { | return syscall(__NR_perf_event_open, attr, pid, cpu, group_fd, flags); | } | | struct perf_event_attr attr_parent = { | .type = PERF_TYPE_HARDWARE, | .size = sizeof(attr_parent), | .config = PERF_COUNT_HW_CPU_CYCLES, | .sample_period = 1, | .exclude_kernel = 1, | }; | | struct perf_event_attr attr_child = { | .type = PERF_TYPE_HARDWARE, | .size = sizeof(attr_child), | .config = PERF_COUNT_HW_CPU_CYCLES, | .exclude_kernel = 1, | .disabled = 1, | }; | | int main(int argc, char *argv[]) | { | int parent, child; | | parent = perf_event_open(&attr_parent, 0, -1, -1, 0); | if (parent < 0) { | fprintf(stderr, "Unable to create event: %d\n", parent); | exit (-1); | } | | child = perf_event_open(&attr_child, 0, -1, parent, 0); | if (child < 0) { | fprintf(stderr, "Unable to create event: %d\n", child); | exit (-1); | } | | for (;;) { | asm("" ::: "memory"); | } | | return 0; | }
Quoted 4 lines
I've kept the context below for anyone new to this thread, but hopefully the above is clear?
Mark.
I attempted to reproduce the issue with the code you shared, but it didn’t seem to work on my end. Do I need to run it with multiple processes?
Quoted 3 lines
Quoted 3 lines
Quoted 1 line
This issue was observed when running KVM on Radxa's Orion6 platform.
Do you mean that you see this on the host, or in a guest?
Yes, I observed this issue inside a KVM-enabled 'guest' running on this board.
Quoted 1 line
Quoted 1 line
Are you using pseudo-NMI?
$ grep CONFIG_ARM64_PSEUDO_NMI .config # CONFIG_ARM64_PSEUDO_NMI is not set
I checked, and the feature is not included in the config I built. I've attached the 'config-UBSAN-negative-idx' file as well.
Quoted 31 lines
Quoted 31 lines
Quoted 4 lines
The issue was previously guarded indirectly by
armv8pmu_event_is_chained(), which internally warned and returned false for idx < 0. But since the commit29227d6ea157("arm64: perf: Clean up enable/disable calls"), this check was removed.The warning there was because this case *should not happen*, and returning false was a way of minimizing the risk of a crash before the warning was logged.
I don't think that
armv8pmu_event_is_chained()would avoid the UBSAN splat. Prior to commit29227d6ea157we had:| static inline void armv8pmu_enable_event_counter(struct perf_event *event) | { | struct perf_event_attr *attr = &event->attr; | int idx = event->hw.idx; | | ... | | if (!kvm_pmu_counter_deferred(attr)) { | armv8pmu_enable_counter(idx); | if (armv8pmu_event_is_chained(event)) | armv8pmu_enable_counter(idx - 1); | } | }Note the first call to
armv8pmu_enable_counter(idx), so this wouldn't help for an event with event->hw.idx==-1, and the only other way we could get here is with a chained event with event->hw.idx==0, which is not valid.
Quoted 6 lines
Quoted 6 lines
Quoted 2 lines
To prevent undefined behavior, add an explicit guard to early return from armv8pmu event if hw.idx < 0,
That is not a correct fix, and simply hides the real bug. It should not be possible to reach this code when hw.idx < 0, and idx should be >= 0 whenever
pmu::add()succeeds.
Now I understand.
Quoted 6 lines
Quoted 6 lines
Quoted 2 lines
similar to handling in other PMU drivers.
(e.g.intel_pmu_disable_event()onarch/x86/events/intel/core.c)I think what you're saying here is that
intel_pmu_disable_event()willpr_warn()and return early in this case. As above, that is because this case is not expected to occur, and indicates a bug elsewhere.
Thanks for the explanation, Mark. That helps me understand why *_pmu_disable_event wasn’t handled on other architectures — it was something I was confused about even as I was working on the code.
Quoted 4 lines
Quoted 4 lines
Quoted 3 lines
$ ./syz-execprog -executor=./syz-executor -repeat=0 -sandbox=none \ -disable=binfmt_misc,cgroups,close_fds,devlink_pci,ieee802154,net_dev,net_reset,nic_vf,swap,sysctl,tun,usb,vhci,wifi \ -procs=8 perf.syz
Quoted 8 lines
Quoted 8 lines
This isn't all that helpful for reproducing the issue. Are the later lines the contents of 'perf.syz'? My local build of syz-execprog can't seem to parse this and prints help/usage.
Has your syzkaller instance managed to generate a C reproducer that you can share?
It should be possible to manually build a test from the above, but that's rather tedious.
I’ve attached both the 'perf.syz' and the generated C reproducer file 'perf.c' for the reference.
Quoted 25 lines
Quoted 25 lines
Quoted 11 lines
------------[ cut here ]------------ UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:716:25 shift exponent -1 is negative CPU: 0 UID: 0 PID: 8405 Comm: syz.3.19 Tainted: G W 6.16.0-rc2-g5982a539cdce #3 PREEMPT Tainted: [W]=WARN Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025 Call trace: show_stack+0x2c/0x3c (C) __dump_stack+0x30/0x40 dump_stack_lvl+0xd8/0x12c dump_stack+0x1c/0x28Quoted 8 lines
ubsan_epilogue+0x14/0x48 __ubsan_handle_shift_out_of_bounds+0x2b0/0x34c armv8pmu_enable_event+0x3c4/0x4b0 armpmu_start+0xc4/0x118 perf_event_unthrottle_group+0x3a8/0x50c perf_adjust_freq_unthr_events+0x2f4/0x578 perf_adjust_freq_unthr_context+0x278/0x46c perf_event_task_tick+0x394/0x5b0AFAICT
perf_event_task_tick()is called with IRQs masked, andperf_adjust_freq_unthr_context()disables the PMU for the duration of the state manipulation, so this shouldn't be able to race with anything that's using appropriate IRQ masking.
Quoted 6 lines
Quoted 6 lines
This might be able to race with a pNMI though, and it looks like we're not entirely robust.
Quoted 1 line
Fixes 29227d6ea157 ("arm64: perf: Clean up enable/disable calls")As above, I do not believe that this fixes tag is accurate.
Thanks again for your insights and checking this part.
Quoted 35 lines
Quoted 35 lines
Quoted 23 lines
Signed-off-by Yunseong Kim <[email protected]>Tested-by Yunseong Kim <[email protected]>Cc Yeoreum Yun <[email protected]>--- drivers/perf/arm_pmuv3.c | 6 ++++++ 1 file changed, 6 insertions(+)drivers/perf/arm_pmuv3.c +3
-0@@ -795,6 +795,9 @@ static void armv8pmu_enable_user_access(struct arm_pmu *cpu_pmu)static void armv8pmu_enable_event (struct perf_event *event) { +if (unlikely (event->hw.idx <0 )) +return ; +armv8pmu_write_event_type (event);armv8pmu_enable_event_irq (event);armv8pmu_enable_event_counter (event);drivers/perf/arm_pmuv3.c static void armv8pmu_enable_event(struct perf_event *event) · line 812
Quoted 8 lines
drivers/perf/arm_pmuv3.c +3
-0@@ -802,6 +805,9 @@ static void armv8pmu_enable_event(struct perf_event *event)static void armv8pmu_disable_event (struct perf_event *event) { +if (unlikely (event->hw.idx <0 )) +return ; +armv8pmu_disable_event_counter (event);armv8pmu_disable_event_irq (event);As above, this is not a correct fix, and NAK to silently ignoring an invalid idx.
Quoted 1 line
Quoted 1 line
Mark.
Many thanks, Mark, for your insightful and careful review.
Best reagards,
Yunseong
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 6.16.0-rc2 Kernel Configuration
#CONFIG_CC_VERSION_TEXT="Ubuntu clang version 20.1.6 (0ubuntu2)" CONFIG_GCC_VERSION=0CONFIG_CC_IS_CLANG=yCONFIG_CLANG_VERSION=200106CONFIG_AS_IS_LLVM=yCONFIG_AS_VERSION=200106CONFIG_LD_IS_BFD=yCONFIG_LD_VERSION=24450CONFIG_LLD_VERSION=0CONFIG_RUSTC_VERSION=108700 CONFIG_RUSTC_LLVM_VERSION=200101CONFIG_CC_CAN_LINK=yCONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y CONFIG_TOOLS_SUPPORT_RELR=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y CONFIG_CC_HAS_COUNTED_BY=y CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY=y CONFIG_RUSTC_HAS_COERCE_POINTEE=y CONFIG_PAHOLE_VERSION=129CONFIG_CONSTRUCTORS=yCONFIG_IRQ_WORK=yCONFIG_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 is not setCONFIG_LOCALVERSION=""CONFIG_LOCALVERSION_AUTO=yCONFIG_BUILD_SALT=""CONFIG_DEFAULT_INIT=""CONFIG_DEFAULT_HOSTNAME="(none)"CONFIG_SYSVIPC=yCONFIG_SYSVIPC_SYSCTL=yCONFIG_SYSVIPC_COMPAT=yCONFIG_POSIX_MQUEUE=yCONFIG_POSIX_MQUEUE_SYSCTL=yCONFIG_WATCH_QUEUE=yCONFIG_CROSS_MEMORY_ATTACH=yCONFIG_AUDIT=yCONFIG_HAVE_ARCH_AUDITSYSCALL=yCONFIG_AUDITSYSCALL=y
#
# IRQ subsystem
#CONFIG_GENERIC_IRQ_PROBE=yCONFIG_GENERIC_IRQ_SHOW=yCONFIG_GENERIC_IRQ_SHOW_LEVEL=yCONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=yCONFIG_GENERIC_IRQ_MIGRATION=yCONFIG_HARDIRQS_SW_RESEND=yCONFIG_GENERIC_IRQ_CHIP=yCONFIG_IRQ_DOMAIN=yCONFIG_IRQ_DOMAIN_HIERARCHY=yCONFIG_IRQ_FASTEOI_HIERARCHY_HANDLERS=yCONFIG_GENERIC_IRQ_IPI=yCONFIG_GENERIC_IRQ_IPI_MUX=yCONFIG_GENERIC_MSI_IRQ=yCONFIG_IRQ_MSI_IOMMU=yCONFIG_IRQ_FORCED_THREADING=yCONFIG_SPARSE_IRQ=y
# CONFIG_GENERIC_IRQ_DEBUGFS is not setCONFIG_GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD=y
# end of IRQ subsystem
CONFIG_GENERIC_TIME_VSYSCALL=yCONFIG_GENERIC_CLOCKEVENTS=yCONFIG_ARCH_HAS_TICK_BROADCAST=yCONFIG_GENERIC_CLOCKEVENTS_BROADCAST=yCONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=yCONFIG_POSIX_CPU_TIMERS_TASK_WORK=yCONFIG_CONTEXT_TRACKING=yCONFIG_CONTEXT_TRACKING_IDLE=y
#
# Timers subsystem
#CONFIG_TICK_ONESHOT=yCONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not setCONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not setCONFIG_CONTEXT_TRACKING_USER=y
# CONFIG_CONTEXT_TRACKING_USER_FORCE is not setCONFIG_NO_HZ=yCONFIG_HIGH_RES_TIMERS=y
# end of Timers subsystem
CONFIG_BPF=yCONFIG_HAVE_EBPF_JIT=yCONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
#
# BPF subsystem
#CONFIG_BPF_SYSCALL=yCONFIG_BPF_JIT=yCONFIG_BPF_JIT_ALWAYS_ON=yCONFIG_BPF_JIT_DEFAULT_ON=yCONFIG_BPF_UNPRIV_DEFAULT_OFF=y
# CONFIG_BPF_PRELOAD is not set
# end of BPF subsystem
CONFIG_PREEMPT_BUILD=yCONFIG_ARCH_HAS_PREEMPT_LAZY=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not setCONFIG_PREEMPT=y
# CONFIG_PREEMPT_LAZY is not set
# CONFIG_PREEMPT_RT is not setCONFIG_PREEMPT_COUNT=yCONFIG_PREEMPTION=y
# CONFIG_PREEMPT_DYNAMIC is not set
# CONFIG_SCHED_CORE is not set
#
# CPU/Task time and stats accounting
#CONFIG_VIRT_CPU_ACCOUNTING=y
# CONFIG_TICK_CPU_ACCOUNTING is not setCONFIG_VIRT_CPU_ACCOUNTING_GEN=yCONFIG_IRQ_TIME_ACCOUNTING=yCONFIG_HAVE_SCHED_AVG_IRQ=yCONFIG_SCHED_HW_PRESSURE=yCONFIG_BSD_PROCESS_ACCT=yCONFIG_BSD_PROCESS_ACCT_V3=yCONFIG_TASKSTATS=y
# CONFIG_TASK_DELAY_ACCT is not setCONFIG_TASK_XACCT=yCONFIG_TASK_IO_ACCOUNTING=yCONFIG_PSI=y
# CONFIG_PSI_DEFAULT_DISABLED is not set
# end of CPU/Task time and stats accounting
CONFIG_CPU_ISOLATION=y
#
# RCU Subsystem
#CONFIG_TREE_RCU=yCONFIG_PREEMPT_RCU=y
# CONFIG_RCU_EXPERT is not setCONFIG_TREE_SRCU=yCONFIG_TASKS_RCU_GENERIC=yCONFIG_NEED_TASKS_RCU=yCONFIG_TASKS_RCU=yCONFIG_TASKS_TRACE_RCU=yCONFIG_RCU_STALL_COMMON=yCONFIG_RCU_NEED_SEGCBLIST=y
# end of RCU Subsystem
CONFIG_IKCONFIG=yCONFIG_IKCONFIG_PROC=y
# CONFIG_IKHEADERS is not setCONFIG_LOG_BUF_SHIFT=18CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
# CONFIG_PRINTK_INDEX is not setCONFIG_GENERIC_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" CONFIG_GCC10_NO_ARRAY_BOUNDS=y CONFIG_GCC_NO_STRINGOP_OVERFLOW=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_NUMA_BALANCING=y CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_SLAB_OBJ_EXT=yCONFIG_CGROUPS=yCONFIG_PAGE_COUNTER=y
# CONFIG_CGROUP_FAVOR_DYNMODS is not set CONFIG_MEMCG=yCONFIG_MEMCG_V1=yCONFIG_BLK_CGROUP=yCONFIG_CGROUP_WRITEBACK=y CONFIG_CGROUP_SCHED=y CONFIG_GROUP_SCHED_WEIGHT=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y
# CONFIG_RT_GROUP_SCHED is not set CONFIG_SCHED_MM_CID=yCONFIG_CGROUP_PIDS=yCONFIG_CGROUP_RDMA=y
# CONFIG_CGROUP_DMEM is not set CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=yCONFIG_CPUSETS=y
# CONFIG_CPUSETS_V1 is not set CONFIG_CGROUP_DEVICE=yCONFIG_CGROUP_CPUACCT=yCONFIG_CGROUP_PERF=yCONFIG_CGROUP_BPF=y
# CONFIG_CGROUP_MISC is not set
# CONFIG_CGROUP_DEBUG is not set CONFIG_SOCK_CGROUP_DATA=yCONFIG_NAMESPACES=yCONFIG_UTS_NS=yCONFIG_TIME_NS=yCONFIG_IPC_NS=yCONFIG_USER_NS=yCONFIG_PID_NS=yCONFIG_NET_NS=yCONFIG_CHECKPOINT_RESTORE=y CONFIG_SCHED_AUTOGROUP=yCONFIG_RELAY=yCONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE=""CONFIG_RD_GZIP=yCONFIG_RD_BZIP2=yCONFIG_RD_LZMA=yCONFIG_RD_XZ=yCONFIG_RD_LZO=yCONFIG_RD_LZ4=yCONFIG_RD_ZSTD=y
# CONFIG_BOOT_CONFIG is not set 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="warn" CONFIG_SYSCTL=yCONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_SYSFS_SYSCALL=yCONFIG_EXPERT=yCONFIG_UID16=yCONFIG_MULTIUSER=y
# CONFIG_SGETMASK_SYSCALL is not set CONFIG_FHANDLE=yCONFIG_POSIX_TIMERS=yCONFIG_PRINTK=yCONFIG_BUG=yCONFIG_ELF_CORE=y
# CONFIG_BASE_SMALL is not setCONFIG_FUTEX=yCONFIG_FUTEX_PI=yCONFIG_FUTEX_PRIVATE_HASH=y CONFIG_FUTEX_MPOL=yCONFIG_EPOLL=yCONFIG_SIGNALFD=yCONFIG_TIMERFD=yCONFIG_EVENTFD=yCONFIG_SHMEM=yCONFIG_AIO=yCONFIG_IO_URING=yCONFIG_ADVISE_SYSCALLS=yCONFIG_MEMBARRIER=yCONFIG_KCMP=yCONFIG_RSEQ=y
# CONFIG_DEBUG_RSEQ is not set CONFIG_CACHESTAT_SYSCALL=y
# CONFIG_PC104 is not setCONFIG_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 CONFIG_GUEST_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=yCONFIG_PROFILING=yCONFIG_TRACEPOINTS=y
#
# Kexec and crash features
#CONFIG_CRASH_RESERVE=yCONFIG_VMCORE_INFO=yCONFIG_KEXEC_CORE=yCONFIG_HAVE_IMA_KEXEC=yCONFIG_KEXEC=yCONFIG_KEXEC_FILE=y
# CONFIG_KEXEC_SIG is not set
# CONFIG_KEXEC_HANDOVER is not setCONFIG_CRASH_DUMP=y
# CONFIG_CRASH_DM_CRYPT is not set
# end of Kexec and crash features # end of General setup
CONFIG_ARM64=yCONFIG_RUSTC_SUPPORTS_ARM64=yCONFIG_CLANG_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=yCONFIG_64BIT=yCONFIG_MMU=yCONFIG_ARM64_CONT_PTE_SHIFT=4CONFIG_ARM64_CONT_PMD_SHIFT=4CONFIG_ARCH_MMAP_RND_BITS_MIN=18CONFIG_ARCH_MMAP_RND_BITS_MAX=33CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16CONFIG_STACKTRACE_SUPPORT=yCONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000CONFIG_LOCKDEP_SUPPORT=yCONFIG_GENERIC_BUG=yCONFIG_GENERIC_BUG_RELATIVE_POINTERS=yCONFIG_GENERIC_HWEIGHT=yCONFIG_GENERIC_CSUM=yCONFIG_GENERIC_CALIBRATE_DELAY=yCONFIG_SMP=yCONFIG_KERNEL_MODE_NEON=yCONFIG_FIX_EARLYCON_MEM=yCONFIG_PGTABLE_LEVELS=5CONFIG_ARCH_SUPPORTS_UPROBES=yCONFIG_ARCH_PROC_KCORE_TEXT=yCONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=yCONFIG_KASAN_SHADOW_OFFSET=0xdfff800000000000
#
# Platform selection
#CONFIG_ARCH_ACTIONS=yCONFIG_ARCH_AIROHA=yCONFIG_ARCH_SUNXI=yCONFIG_ARCH_ALPINE=yCONFIG_ARCH_APPLE=yCONFIG_ARCH_BCM=yCONFIG_ARCH_BCM2835=yCONFIG_ARCH_BCM_IPROC=yCONFIG_ARCH_BCMBCA=yCONFIG_ARCH_BRCMSTB=yCONFIG_ARCH_BERLIN=y
# CONFIG_ARCH_BITMAIN is not setCONFIG_ARCH_BLAIZE=yCONFIG_ARCH_EXYNOS=yCONFIG_ARCH_SPARX5=yCONFIG_ARCH_K3=yCONFIG_ARCH_LG1K=yCONFIG_ARCH_HISI=yCONFIG_ARCH_KEEMBAY=yCONFIG_ARCH_MEDIATEK=yCONFIG_ARCH_MESON=yCONFIG_ARCH_MVEBU=yCONFIG_ARCH_NXP=yCONFIG_ARCH_LAYERSCAPE=yCONFIG_ARCH_MXC=yCONFIG_ARCH_S32=yCONFIG_ARCH_MA35=yCONFIG_ARCH_NPCM=y
# CONFIG_ARCH_PENSANDO is not setCONFIG_ARCH_QCOM=yCONFIG_ARCH_REALTEK=yCONFIG_ARCH_RENESAS=yCONFIG_ARCH_ROCKCHIP=yCONFIG_ARCH_SEATTLE=yCONFIG_ARCH_INTEL_SOCFPGA=yCONFIG_ARCH_STM32=yCONFIG_ARCH_SYNQUACER=yCONFIG_ARCH_TEGRA=yCONFIG_ARCH_TESLA_FSD=yCONFIG_ARCH_SPRD=yCONFIG_ARCH_THUNDER=yCONFIG_ARCH_THUNDER2=yCONFIG_ARCH_UNIPHIER=yCONFIG_ARCH_VEXPRESS=yCONFIG_ARCH_VISCONTI=yCONFIG_ARCH_XGENE=yCONFIG_ARCH_ZYNQMP=y
# end of Platform selection
#
# Kernel Features
#
#
# ARM errata workarounds via the alternatives framework #CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y CONFIG_AMPERE_ERRATUM_AC04_CPU_23=y CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y CONFIG_ARM64_ERRATUM_826319=y CONFIG_ARM64_ERRATUM_827319=y CONFIG_ARM64_ERRATUM_824069=y CONFIG_ARM64_ERRATUM_819472=y CONFIG_ARM64_ERRATUM_832075=y
# CONFIG_ARM64_ERRATUM_834220 is not set CONFIG_ARM64_ERRATUM_1742098=y CONFIG_ARM64_ERRATUM_845719=y CONFIG_ARM64_ERRATUM_843419=y CONFIG_ARM64_ERRATUM_1024718=y CONFIG_ARM64_ERRATUM_1418040=y CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y CONFIG_ARM64_ERRATUM_1165522=y CONFIG_ARM64_ERRATUM_1319367=y CONFIG_ARM64_ERRATUM_1530923=y CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
# CONFIG_ARM64_ERRATUM_2441007 is not set
# CONFIG_ARM64_ERRATUM_1286807 is not set CONFIG_ARM64_ERRATUM_1463225=y
# CONFIG_ARM64_ERRATUM_1542419 is not set CONFIG_ARM64_ERRATUM_1508412=y CONFIG_ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE=y CONFIG_ARM64_ERRATUM_2051678=y CONFIG_ARM64_ERRATUM_2077057=y CONFIG_ARM64_ERRATUM_2658417=y CONFIG_ARM64_ERRATUM_2119858=y CONFIG_ARM64_ERRATUM_2139208=y CONFIG_ARM64_WORKAROUND_TSB_FLUSH_FAILURE=y CONFIG_ARM64_ERRATUM_2054223=y CONFIG_ARM64_ERRATUM_2067961=y CONFIG_ARM64_WORKAROUND_TRBE_WRITE_OUT_OF_RANGE=y CONFIG_ARM64_ERRATUM_2253138=y CONFIG_ARM64_ERRATUM_2224489=y
# CONFIG_ARM64_ERRATUM_2441009 is not set CONFIG_ARM64_ERRATUM_2064142=y CONFIG_ARM64_ERRATUM_2038923=y CONFIG_ARM64_ERRATUM_1902691=y CONFIG_ARM64_ERRATUM_2457168=y CONFIG_ARM64_ERRATUM_2645198=y CONFIG_ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD=y CONFIG_ARM64_ERRATUM_2966298=y CONFIG_ARM64_ERRATUM_3117295=y CONFIG_ARM64_ERRATUM_3194386=y CONFIG_CAVIUM_ERRATUM_22375=y CONFIG_CAVIUM_ERRATUM_23144=y CONFIG_CAVIUM_ERRATUM_23154=y CONFIG_CAVIUM_ERRATUM_27456=y CONFIG_CAVIUM_ERRATUM_30115=y CONFIG_CAVIUM_TX2_ERRATUM_219=y CONFIG_FUJITSU_ERRATUM_010001=y CONFIG_HISILICON_ERRATUM_161600802=y CONFIG_HISILICON_ERRATUM_162100801=y CONFIG_QCOM_FALKOR_ERRATUM_1003=y CONFIG_QCOM_FALKOR_ERRATUM_1009=y CONFIG_QCOM_QDF2400_ERRATUM_0065=y CONFIG_QCOM_FALKOR_ERRATUM_E1041=y CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y CONFIG_ROCKCHIP_ERRATUM_3568002=y CONFIG_ROCKCHIP_ERRATUM_3588001=y CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
# end of ARM errata workarounds via the alternatives framework
CONFIG_ARM64_4K_PAGES=y
# CONFIG_ARM64_16K_PAGES is not set
# CONFIG_ARM64_64K_PAGES is not set
# CONFIG_ARM64_VA_BITS_39 is not set
# CONFIG_ARM64_VA_BITS_48 is not setCONFIG_ARM64_VA_BITS_52=y
# CONFIG_ARM64_FORCE_52BIT is not setCONFIG_ARM64_VA_BITS=52CONFIG_ARM64_PA_BITS_52=yCONFIG_ARM64_PA_BITS=52CONFIG_ARM64_LPA2=y
# CONFIG_CPU_BIG_ENDIAN is not setCONFIG_CPU_LITTLE_ENDIAN=yCONFIG_SCHED_MC=y
# CONFIG_SCHED_CLUSTER is not setCONFIG_SCHED_SMT=yCONFIG_NR_CPUS=8CONFIG_HOTPLUG_CPU=yCONFIG_NUMA=yCONFIG_NODES_SHIFT=4CONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not setCONFIG_HZ=100CONFIG_SCHED_HRTICK=yCONFIG_ARCH_SPARSEMEM_ENABLE=yCONFIG_HW_PERF_EVENTS=yCONFIG_CC_HAVE_SHADOW_CALL_STACK=yCONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not setCONFIG_ARCH_SUPPORTS_KEXEC=yCONFIG_ARCH_SUPPORTS_KEXEC_FILE=yCONFIG_ARCH_SELECTS_KEXEC_FILE=yCONFIG_ARCH_SUPPORTS_KEXEC_SIG=yCONFIG_ARCH_SUPPORTS_KEXEC_IMAGE_VERIFY_SIG=yCONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG=yCONFIG_ARCH_SUPPORTS_KEXEC_HANDOVER=yCONFIG_ARCH_SUPPORTS_CRASH_DUMP=yCONFIG_ARCH_DEFAULT_CRASH_DUMP=yCONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION=yCONFIG_TRANS_TABLE=y
# CONFIG_XEN is not setCONFIG_ARCH_FORCE_MAX_ORDER=10CONFIG_UNMAP_KERNEL_AT_EL0=yCONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=yCONFIG_RODATA_FULL_DEFAULT_ENABLED=y
# CONFIG_ARM64_SW_TTBR0_PAN is not setCONFIG_ARM64_TAGGED_ADDR_ABI=yCONFIG_COMPAT=yCONFIG_KUSER_HELPERS=y
# CONFIG_COMPAT_ALIGNMENT_FIXUPS is not set
# CONFIG_ARMV8_DEPRECATED is not set
#
# ARMv8.1 architectural features
#CONFIG_ARM64_HW_AFDBM=yCONFIG_ARM64_PAN=yCONFIG_ARM64_LSE_ATOMICS=yCONFIG_ARM64_USE_LSE_ATOMICS=y
# end of ARMv8.1 architectural features
#
# ARMv8.2 architectural features
#CONFIG_ARM64_PMEM=yCONFIG_ARM64_RAS_EXTN=yCONFIG_ARM64_CNP=y
# end of ARMv8.2 architectural features
#
# ARMv8.3 architectural features
#CONFIG_ARM64_PTR_AUTH=yCONFIG_ARM64_PTR_AUTH_KERNEL=yCONFIG_CC_HAS_BRANCH_PROT_PAC_RET=yCONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y
# end of ARMv8.3 architectural features
#
# ARMv8.4 architectural features
#CONFIG_ARM64_AMU_EXTN=yCONFIG_ARM64_TLB_RANGE=y
# end of ARMv8.4 architectural features
#
# ARMv8.5 architectural features
#CONFIG_AS_HAS_ARMV8_5=yCONFIG_ARM64_BTI=yCONFIG_ARM64_BTI_KERNEL=yCONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI=yCONFIG_ARM64_E0PD=yCONFIG_ARM64_AS_HAS_MTE=yCONFIG_ARM64_MTE=y
# end of ARMv8.5 architectural features
#
# ARMv8.7 architectural features
#CONFIG_ARM64_EPAN=y
# end of ARMv8.7 architectural features
CONFIG_AS_HAS_MOPS=y
#
# ARMv8.9 architectural features
#CONFIG_ARM64_POE=yCONFIG_ARCH_PKEY_BITS=3CONFIG_ARM64_HAFT=y
# end of ARMv8.9 architectural features
#
# v9.4 architectural features # CONFIG_ARM64_GCS=y # end of v9.4 architectural features
CONFIG_ARM64_SVE=yCONFIG_ARM64_SME=y
# CONFIG_ARM64_PSEUDO_NMI is not set
# CONFIG_RELOCATABLE is not set
# CONFIG_RANDOMIZE_BASE is not setCONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=yCONFIG_STACKPROTECTOR_PER_TASK=yCONFIG_ARM64_CONTPTE=y
# end of Kernel Features
#
# Boot options
#
# CONFIG_ARM64_ACPI_PARKING_PROTOCOL is not setCONFIG_CMDLINE="earlyprintk=serial net.ifnames=0 sysctl.kernel.hung_task_all_cpu_backtrace=1 ima_policy=tcb nf-conntrack-ftp.ports=20000 nf-conntrack-tftp.ports=20000 nf-conntrack-sip.ports=20000 nf-conntrack-irc.ports=20000 nf-conntrack-sane.ports=20000 binder.debug_mask=0 rcupdate.rcu_expedited=1 rcupdate.rcu_cpu_stall_cputime=1 no_hash_pointers page_owner=on sysctl.vm.nr_hugepages=4 sysctl.vm.nr_overcommit_hugepages=4 secretmem.enable=1 sysctl.max_rcu_stall_to_panic=1 msr.allow_writes=off coredump_filter=0xffff root=/dev/vda console=ttyAMA0 smp.csd_lock_timeout=100000 watchdog_thresh=55 workqueue.watchdog_thresh=140 sysctl.net.core.netdev_unregister_timeout_secs=140 dummy_hcd.num=32 max_loop=32 nbds_max=32 panic_on_warn=1" CONFIG_CMDLINE_FROM_BOOTLOADER=y
# CONFIG_CMDLINE_FORCE is not setCONFIG_EFI_STUB=yCONFIG_EFI=y
# CONFIG_COMPRESSED_INSTALL is not setCONFIG_DMI=y
# end of Boot options
#
# Power management options
#CONFIG_SUSPEND=yCONFIG_SUSPEND_FREEZER=y
# CONFIG_SUSPEND_SKIP_SYNC is not setCONFIG_HIBERNATE_CALLBACKS=yCONFIG_HIBERNATION=yCONFIG_HIBERNATION_SNAPSHOT_DEV=yCONFIG_HIBERNATION_COMP_LZO=y
# CONFIG_HIBERNATION_COMP_LZ4 is not setCONFIG_HIBERNATION_DEF_COMP="lzo"CONFIG_PM_STD_PARTITION=""CONFIG_PM_SLEEP=yCONFIG_PM_SLEEP_SMP=y
# CONFIG_PM_AUTOSLEEP is not set
# CONFIG_PM_USERSPACE_AUTOSLEEP is not set
# CONFIG_PM_WAKELOCKS is not setCONFIG_PM=yCONFIG_PM_DEBUG=y
# CONFIG_PM_ADVANCED_DEBUG is not set
# CONFIG_PM_TEST_SUSPEND is not setCONFIG_PM_SLEEP_DEBUG=y
# CONFIG_DPM_WATCHDOG is not setCONFIG_PM_CLK=yCONFIG_PM_GENERIC_DOMAINS=yCONFIG_WQ_POWER_EFFICIENT_DEFAULT=yCONFIG_PM_GENERIC_DOMAINS_SLEEP=yCONFIG_PM_GENERIC_DOMAINS_OF=yCONFIG_CPU_PM=yCONFIG_ENERGY_MODEL=yCONFIG_ARCH_HIBERNATION_POSSIBLE=yCONFIG_ARCH_HIBERNATION_HEADER=yCONFIG_ARCH_SUSPEND_POSSIBLE=y
# end of Power management options
#
# CPU Power Management
#
#
# CPU Idle
#CONFIG_CPU_IDLE=yCONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
# CONFIG_CPU_IDLE_GOV_LADDER is not setCONFIG_CPU_IDLE_GOV_MENU=y
# CONFIG_CPU_IDLE_GOV_TEO is not setCONFIG_DT_IDLE_STATES=yCONFIG_DT_IDLE_GENPD=y
#
# ARM CPU Idle Drivers
#CONFIG_ARM_PSCI_CPUIDLE=yCONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
# end of ARM CPU Idle Drivers # end of CPU Idle
#
# CPU Frequency scaling
#CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y CONFIG_CPU_FREQ_STAT=y
# 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_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
#
# CPU frequency scaling drivers
#CONFIG_CPUFREQ_DT=y
# CONFIG_CPUFREQ_VIRT is not setCONFIG_CPUFREQ_DT_PLATDEV=yCONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=yCONFIG_ARM_AIROHA_SOC_CPUFREQ=yCONFIG_ARM_APPLE_SOC_CPUFREQ=yCONFIG_ARM_ARMADA_37XX_CPUFREQ=y
# CONFIG_ARM_ARMADA_8K_CPUFREQ is not setCONFIG_ARM_SCPI_CPUFREQ=yCONFIG_ARM_IMX_CPUFREQ_DT=yCONFIG_ARM_MEDIATEK_CPUFREQ=yCONFIG_ARM_MEDIATEK_CPUFREQ_HW=yCONFIG_ARM_QCOM_CPUFREQ_NVMEM=yCONFIG_ARM_QCOM_CPUFREQ_HW=yCONFIG_ARM_RASPBERRYPI_CPUFREQ=yCONFIG_ARM_SCMI_CPUFREQ=yCONFIG_ARM_TEGRA20_CPUFREQ=yCONFIG_ARM_TEGRA124_CPUFREQ=yCONFIG_ARM_TEGRA186_CPUFREQ=yCONFIG_ARM_TEGRA194_CPUFREQ=yCONFIG_ARM_TI_CPUFREQ=yCONFIG_QORIQ_CPUFREQ=yCONFIG_ACPI_CPPC_CPUFREQ=yCONFIG_ACPI_CPPC_CPUFREQ_FIE=y
# end of CPU Frequency scaling # end of CPU Power Management
CONFIG_ARCH_SUPPORTS_ACPI=yCONFIG_ACPI=yCONFIG_ACPI_GENERIC_GSI=yCONFIG_ACPI_CCA_REQUIRED=yCONFIG_ACPI_THERMAL_LIB=y
# CONFIG_ACPI_DEBUGGER is not setCONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACPI_FPDT is not set
# CONFIG_ACPI_EC is not setCONFIG_ACPI_AC=yCONFIG_ACPI_BATTERY=yCONFIG_ACPI_BUTTON=yCONFIG_ACPI_VIDEO=yCONFIG_ACPI_FAN=y
# CONFIG_ACPI_TAD is not setCONFIG_ACPI_DOCK=yCONFIG_ACPI_PROCESSOR_IDLE=yCONFIG_ACPI_MCFG=yCONFIG_ACPI_CPPC_LIB=yCONFIG_ACPI_PROCESSOR=y
# CONFIG_ACPI_IPMI is not setCONFIG_ACPI_HOTPLUG_CPU=yCONFIG_ACPI_THERMAL=yCONFIG_ACPI_PLATFORM_PROFILE=yCONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=yCONFIG_ACPI_TABLE_UPGRADE=y
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_PCI_SLOT is not setCONFIG_ACPI_CONTAINER=yCONFIG_ACPI_HOTPLUG_MEMORY=yCONFIG_ACPI_HED=y
# CONFIG_ACPI_BGRT is not setCONFIG_ACPI_REDUCED_HARDWARE_ONLY=yCONFIG_ACPI_NHLT=y
# CONFIG_ACPI_NFIT is not setCONFIG_ACPI_NUMA=yCONFIG_ACPI_HMAT=yCONFIG_HAVE_ACPI_APEI=yCONFIG_ACPI_APEI=yCONFIG_ACPI_APEI_GHES=yCONFIG_ACPI_APEI_PCIEAER=yCONFIG_ACPI_APEI_SEA=yCONFIG_ACPI_APEI_MEMORY_FAILURE=yCONFIG_ACPI_APEI_EINJ=y
# CONFIG_ACPI_APEI_ERST_DEBUG is not set
# CONFIG_ACPI_CONFIGFS is not set
# CONFIG_ACPI_PFRUT is not setCONFIG_ACPI_IORT=yCONFIG_ACPI_GTDT=y
# CONFIG_ACPI_AGDI is not setCONFIG_ACPI_APMT=yCONFIG_ACPI_PPTT=yCONFIG_ACPI_PCC=y
# CONFIG_ACPI_FFH is not setCONFIG_PMIC_OPREGION=yCONFIG_ACPI_PRMT=yCONFIG_KVM_COMMON=yCONFIG_HAVE_KVM_IRQCHIP=yCONFIG_HAVE_KVM_IRQ_ROUTING=yCONFIG_HAVE_KVM_DIRTY_RING=yCONFIG_HAVE_KVM_DIRTY_RING_ACQ_REL=yCONFIG_NEED_KVM_DIRTY_RING_WITH_BITMAP=yCONFIG_KVM_MMIO=yCONFIG_HAVE_KVM_MSI=yCONFIG_HAVE_KVM_READONLY_MEM=yCONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=yCONFIG_KVM_VFIO=yCONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=yCONFIG_HAVE_KVM_IRQ_BYPASS=yCONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=yCONFIG_KVM_XFER_TO_GUEST_WORK=yCONFIG_KVM_GENERIC_HARDWARE_ENABLING=yCONFIG_KVM_GENERIC_MMU_NOTIFIER=yCONFIG_VIRTUALIZATION=yCONFIG_KVM=y
# CONFIG_NVHE_EL2_DEBUG is not set
# CONFIG_PTDUMP_STAGE2_DEBUGFS is not setCONFIG_CPU_MITIGATIONS=y
#
# General architecture-dependent options
#CONFIG_ARCH_HAS_SUBPAGE_FAULTS=y CONFIG_HOTPLUG_SMT=y CONFIG_HOTPLUG_CORE_SYNC=y CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
# CONFIG_KPROBES is not set CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=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_GENERIC_IDLE_POLL_SETUP=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_KEEPINITRD=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_HAS_SET_DIRECT_MAP=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_WANTS_NO_INSTR=y CONFIG_HAVE_ASM_MODVERSIONS=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_RSEQ=yCONFIG_HAVE_RUST=y CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y CONFIG_HAVE_HW_BREAKPOINT=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_LAZY_TLB_REFCOUNT=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=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_HAVE_ARCH_SECCOMP=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP=yCONFIG_SECCOMP_FILTER=y
# CONFIG_SECCOMP_CACHE_DEBUG is not set CONFIG_HAVE_ARCH_STACKLEAK=y CONFIG_HAVE_STACKPROTECTOR=y CONFIG_STACKPROTECTOR=y CONFIG_STACKPROTECTOR_STRONG=y CONFIG_ARCH_SUPPORTS_SHADOW_CALL_STACK=y
# CONFIG_SHADOW_CALL_STACK is not set CONFIG_ARCH_SUPPORTS_LTO_CLANG=y CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y CONFIG_LTO_NONE=y CONFIG_ARCH_SUPPORTS_CFI_CLANG=y
# CONFIG_CFI_CLANG is not set CONFIG_HAVE_CFI_ICALL_NORMALIZE_INTEGERS_CLANG=y CONFIG_HAVE_CFI_ICALL_NORMALIZE_INTEGERS_RUSTC=y CONFIG_HAVE_CONTEXT_TRACKING_USER=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_MOVE_PUD=y CONFIG_HAVE_MOVE_PMD=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_HUGE_VMAP=y CONFIG_HAVE_ARCH_HUGE_VMALLOC=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_WANT_PMD_MKWRITE=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_ARCH_WANTS_EXECMEM_LATE=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_ARCH_MMAP_RND_BITS=18 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 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_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y CONFIG_CLONE_BACKWARDS=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_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_COMPILER_H=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_ARCH_HAS_CC_PLATFORM=y CONFIG_HAVE_PREEMPT_DYNAMIC=y CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y CONFIG_ARCH_HAVE_TRACE_MMIO_ACCESS=y CONFIG_ARCH_HAS_HW_PTE_YOUNG=y CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y
#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not setCONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
# end of GCOV-based kernel profiling
CONFIG_HAVE_GCC_PLUGINS=yCONFIG_FUNCTION_ALIGNMENT_4B=yCONFIG_FUNCTION_ALIGNMENT=4CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y
# end of General architecture-dependent options
CONFIG_RT_MUTEXES=yCONFIG_MODULE_SIG_FORMAT=yCONFIG_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=y
# CONFIG_GENKSYMS is not set CONFIG_GENDWARFKSYMS=yCONFIG_ASM_MODVERSIONS=y
# CONFIG_EXTENDED_MODVERSIONS is not set
# CONFIG_BASIC_MODVERSIONS is not set CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SIG_FORCE is not set
# CONFIG_MODULE_SIG_ALL is not set CONFIG_MODULE_SIG_SHA1=y
# CONFIG_MODULE_SIG_SHA256 is not set
# CONFIG_MODULE_SIG_SHA384 is not set
# CONFIG_MODULE_SIG_SHA512 is not set
# CONFIG_MODULE_SIG_SHA3_256 is not set
# CONFIG_MODULE_SIG_SHA3_384 is not set
# CONFIG_MODULE_SIG_SHA3_512 is not set CONFIG_MODULE_SIG_HASH="sha1"
# 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=yCONFIG_BLOCK=yCONFIG_BLOCK_LEGACY_AUTOLOAD=y CONFIG_BLK_RQ_ALLOC_TIME=y CONFIG_BLK_CGROUP_RWSTAT=y CONFIG_BLK_CGROUP_PUNT_BIO=y CONFIG_BLK_DEV_BSG_COMMON=yCONFIG_BLK_ICQ=yCONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y
# CONFIG_BLK_DEV_WRITE_MOUNTED is not set CONFIG_BLK_DEV_ZONED=y CONFIG_BLK_DEV_THROTTLING=yCONFIG_BLK_WBT=yCONFIG_BLK_WBT_MQ=yCONFIG_BLK_CGROUP_IOLATENCY=y
# CONFIG_BLK_CGROUP_FC_APPID is not set CONFIG_BLK_CGROUP_IOCOST=y
# CONFIG_BLK_CGROUP_IOPRIO is not set CONFIG_BLK_DEBUG_FS=y
# CONFIG_BLK_SED_OPAL is not set CONFIG_BLK_INLINE_ENCRYPTION=y CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y
#
# Partition Types
#CONFIG_PARTITION_ADVANCED=yCONFIG_ACORN_PARTITION=yCONFIG_ACORN_PARTITION_CUMANA=yCONFIG_ACORN_PARTITION_EESOX=yCONFIG_ACORN_PARTITION_ICS=yCONFIG_ACORN_PARTITION_ADFS=yCONFIG_ACORN_PARTITION_POWERTEC=yCONFIG_ACORN_PARTITION_RISCIX=yCONFIG_AIX_PARTITION=yCONFIG_OSF_PARTITION=yCONFIG_AMIGA_PARTITION=yCONFIG_ATARI_PARTITION=yCONFIG_MAC_PARTITION=yCONFIG_MSDOS_PARTITION=yCONFIG_BSD_DISKLABEL=yCONFIG_MINIX_SUBPARTITION=yCONFIG_SOLARIS_X86_PARTITION=yCONFIG_UNIXWARE_DISKLABEL=yCONFIG_LDM_PARTITION=y
# CONFIG_LDM_DEBUG is not setCONFIG_SGI_PARTITION=yCONFIG_ULTRIX_PARTITION=yCONFIG_SUN_PARTITION=yCONFIG_KARMA_PARTITION=yCONFIG_EFI_PARTITION=yCONFIG_SYSV68_PARTITION=yCONFIG_CMDLINE_PARTITION=y
# CONFIG_OF_PARTITION is not set
# end of Partition Types
CONFIG_BLK_PM=yCONFIG_BLOCK_HOLDER_DEPRECATED=yCONFIG_BLK_MQ_STACKING=y
#
# IO Schedulers
#CONFIG_MQ_IOSCHED_DEADLINE=yCONFIG_MQ_IOSCHED_KYBER=yCONFIG_IOSCHED_BFQ=yCONFIG_BFQ_GROUP_IOSCHED=yCONFIG_BFQ_CGROUP_DEBUG=y
# end of IO Schedulers
CONFIG_PREEMPT_NOTIFIERS=yCONFIG_PADATA=yCONFIG_ASN1=yCONFIG_UNINLINE_SPIN_UNLOCK=yCONFIG_ARCH_SUPPORTS_ATOMIC_RMW=yCONFIG_MUTEX_SPIN_ON_OWNER=yCONFIG_RWSEM_SPIN_ON_OWNER=yCONFIG_LOCK_SPIN_ON_OWNER=yCONFIG_ARCH_USE_QUEUED_SPINLOCKS=yCONFIG_QUEUED_SPINLOCKS=yCONFIG_ARCH_USE_QUEUED_RWLOCKS=yCONFIG_QUEUED_RWLOCKS=yCONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=yCONFIG_ARCH_HAS_SYSCALL_WRAPPER=yCONFIG_FREEZER=y
#
# Executable file formats
#CONFIG_BINFMT_ELF=yCONFIG_COMPAT_BINFMT_ELF=yCONFIG_ARCH_BINFMT_ELF_STATE=yCONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=yCONFIG_ARCH_HAVE_ELF_PROT=yCONFIG_ARCH_USE_GNU_PROPERTY=yCONFIG_ELFCORE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not setCONFIG_BINFMT_SCRIPT=yCONFIG_BINFMT_MISC=yCONFIG_COREDUMP=y
# end of Executable file formats
#
# Memory Management options
#CONFIG_ZPOOL=yCONFIG_SWAP=yCONFIG_ZSWAP=yCONFIG_ZSWAP_DEFAULT_ON=y CONFIG_ZSWAP_SHRINKER_DEFAULT_ON=y
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842=y
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set CONFIG_ZSWAP_COMPRESSOR_DEFAULT="842" CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC=y CONFIG_ZSWAP_ZPOOL_DEFAULT="zsmalloc" CONFIG_ZSMALLOC=y
# CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC_CHAIN_SIZE=8
#
# Slab allocator options
#CONFIG_SLUB=yCONFIG_KVFREE_RCU_BATCHED=y
# CONFIG_SLUB_TINY is not setCONFIG_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 setCONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_RANDOM_KMALLOC_CACHES is not set
# end of Slab allocator options
# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
# CONFIG_COMPAT_BRK is not setCONFIG_SPARSEMEM=yCONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP=yCONFIG_HAVE_GUP_FAST=y CONFIG_ARCH_KEEP_MEMBLOCK=y CONFIG_NUMA_KEEP_MEMINFO=y CONFIG_MEMORY_ISOLATION=y CONFIG_EXCLUSIVE_SYSTEM_RAM=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y CONFIG_MEMORY_HOTPLUG=y CONFIG_MHP_DEFAULT_ONLINE_TYPE_OFFLINE=y
# CONFIG_MHP_DEFAULT_ONLINE_TYPE_ONLINE_AUTO is not set # CONFIG_MHP_DEFAULT_ONLINE_TYPE_ONLINE_KERNEL is not set # CONFIG_MHP_DEFAULT_ONLINE_TYPE_ONLINE_MOVABLE is not set CONFIG_MEMORY_HOTREMOVE=y CONFIG_MHP_MEMMAP_ON_MEMORY=y 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_MEMORY_BALLOON=y CONFIG_BALLOON_COMPACTION=yCONFIG_COMPACTION=y CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 CONFIG_PAGE_REPORTING=yCONFIG_MIGRATION=yCONFIG_DEVICE_MIGRATION=y CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y CONFIG_ARCH_ENABLE_THP_MIGRATION=y CONFIG_CONTIG_ALLOC=y CONFIG_PCP_BATCH_SCALE_MAX=5 CONFIG_PHYS_ADDR_T_64BIT=yCONFIG_MMU_NOTIFIER=yCONFIG_KSM=yCONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y
# CONFIG_HWPOISON_INJECT is not set CONFIG_ARCH_WANTS_THP_SWAP=yCONFIG_MM_ID=yCONFIG_TRANSPARENT_HUGEPAGE=y
# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y
# CONFIG_TRANSPARENT_HUGEPAGE_NEVER is not set CONFIG_THP_SWAP=yCONFIG_READ_ONLY_THP_FOR_FS=y
# CONFIG_NO_PAGE_MAPCOUNT is not set CONFIG_PAGE_MAPCOUNT=y CONFIG_PGTABLE_HAS_HUGE_LEAVES=y CONFIG_ARCH_SUPPORTS_HUGE_PFNMAP=y CONFIG_ARCH_SUPPORTS_PMD_PFNMAP=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=yCONFIG_CMA=y
# CONFIG_CMA_DEBUGFS is not set
# CONFIG_CMA_SYSFS is not setCONFIG_CMA_AREAS=20CONFIG_PAGE_BLOCK_ORDER=10 CONFIG_GENERIC_EARLY_IOREMAP=y
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set CONFIG_PAGE_IDLE_FLAG=y
# CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y CONFIG_ARCH_HAS_PTE_DEVMAP=y CONFIG_ARCH_HAS_ZONE_DMA_SET=yCONFIG_ZONE_DMA=yCONFIG_ZONE_DMA32=yCONFIG_ZONE_DEVICE=yCONFIG_HMM_MIRROR=yCONFIG_GET_FREE_REGION=yCONFIG_DEVICE_PRIVATE=y CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y CONFIG_ARCH_HAS_PKEYS=y CONFIG_ARCH_USES_PG_ARCH_2=y CONFIG_ARCH_USES_PG_ARCH_3=y CONFIG_VM_EVENT_COUNTERS=yCONFIG_PERCPU_STATS=y
# CONFIG_GUP_TEST is not set
# CONFIG_DMAPOOL_TEST is not set CONFIG_ARCH_HAS_PTE_SPECIAL=y CONFIG_MEMFD_CREATE=yCONFIG_SECRETMEM=yCONFIG_ANON_VMA_NAME=y CONFIG_HAVE_ARCH_USERFAULTFD_WP=y CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y CONFIG_USERFAULTFD=y
# CONFIG_PTE_MARKER_UFFD_WP 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=yCONFIG_EXECMEM=yCONFIG_NUMA_MEMBLKS=y
# CONFIG_NUMA_EMU is not set CONFIG_ARCH_HAS_USER_SHADOW_STACK=y
#
# Data Access Monitoring
#CONFIG_DAMON=yCONFIG_DAMON_VADDR=yCONFIG_DAMON_PADDR=yCONFIG_DAMON_SYSFS=yCONFIG_DAMON_RECLAIM=yCONFIG_DAMON_LRU_SORT=y
# end of Data Access Monitoring # end of Memory Management options
CONFIG_NET=yCONFIG_COMPAT_NETLINK_MESSAGES=yCONFIG_NET_INGRESS=yCONFIG_NET_EGRESS=yCONFIG_NET_XGRESS=yCONFIG_NET_REDIRECT=yCONFIG_SKB_DECRYPTED=yCONFIG_SKB_EXTENSIONS=yCONFIG_NET_DEVMEM=yCONFIG_NET_SHAPER=yCONFIG_NET_CRC32C=y
#
# Networking options
#CONFIG_PACKET=yCONFIG_PACKET_DIAG=yCONFIG_UNIX=yCONFIG_AF_UNIX_OOB=yCONFIG_UNIX_DIAG=yCONFIG_TLS=yCONFIG_TLS_DEVICE=yCONFIG_TLS_TOE=yCONFIG_XFRM=yCONFIG_XFRM_OFFLOAD=yCONFIG_XFRM_ALGO=yCONFIG_XFRM_USER=yCONFIG_XFRM_INTERFACE=yCONFIG_XFRM_SUB_POLICY=yCONFIG_XFRM_MIGRATE=yCONFIG_XFRM_STATISTICS=yCONFIG_XFRM_AH=yCONFIG_XFRM_ESP=yCONFIG_XFRM_IPCOMP=yCONFIG_NET_KEY=yCONFIG_NET_KEY_MIGRATE=y
# CONFIG_XFRM_IPTFS is not setCONFIG_XFRM_ESPINTCP=yCONFIG_SMC=yCONFIG_SMC_DIAG=y
# CONFIG_SMC_LO is not setCONFIG_XDP_SOCKETS=yCONFIG_XDP_SOCKETS_DIAG=yCONFIG_NET_HANDSHAKE=yCONFIG_INET=yCONFIG_IP_MULTICAST=yCONFIG_IP_ADVANCED_ROUTER=yCONFIG_IP_FIB_TRIE_STATS=yCONFIG_IP_MULTIPLE_TABLES=yCONFIG_IP_ROUTE_MULTIPATH=yCONFIG_IP_ROUTE_VERBOSE=yCONFIG_IP_ROUTE_CLASSID=yCONFIG_IP_PNP=yCONFIG_IP_PNP_DHCP=yCONFIG_IP_PNP_BOOTP=yCONFIG_IP_PNP_RARP=yCONFIG_NET_IPIP=yCONFIG_NET_IPGRE_DEMUX=yCONFIG_NET_IP_TUNNEL=yCONFIG_NET_IPGRE=yCONFIG_NET_IPGRE_BROADCAST=yCONFIG_IP_MROUTE_COMMON=yCONFIG_IP_MROUTE=yCONFIG_IP_MROUTE_MULTIPLE_TABLES=yCONFIG_IP_PIMSM_V1=yCONFIG_IP_PIMSM_V2=yCONFIG_SYN_COOKIES=yCONFIG_NET_IPVTI=yCONFIG_NET_UDP_TUNNEL=yCONFIG_NET_FOU=yCONFIG_NET_FOU_IP_TUNNELS=yCONFIG_INET_AH=yCONFIG_INET_ESP=yCONFIG_INET_ESP_OFFLOAD=yCONFIG_INET_ESPINTCP=yCONFIG_INET_IPCOMP=yCONFIG_INET_TABLE_PERTURB_ORDER=16CONFIG_INET_XFRM_TUNNEL=yCONFIG_INET_TUNNEL=yCONFIG_INET_DIAG=yCONFIG_INET_TCP_DIAG=yCONFIG_INET_UDP_DIAG=yCONFIG_INET_RAW_DIAG=yCONFIG_INET_DIAG_DESTROY=yCONFIG_TCP_CONG_ADVANCED=yCONFIG_TCP_CONG_BIC=yCONFIG_TCP_CONG_CUBIC=yCONFIG_TCP_CONG_WESTWOOD=yCONFIG_TCP_CONG_HTCP=yCONFIG_TCP_CONG_HSTCP=yCONFIG_TCP_CONG_HYBLA=yCONFIG_TCP_CONG_VEGAS=yCONFIG_TCP_CONG_NV=yCONFIG_TCP_CONG_SCALABLE=yCONFIG_TCP_CONG_LP=yCONFIG_TCP_CONG_VENO=yCONFIG_TCP_CONG_YEAH=yCONFIG_TCP_CONG_ILLINOIS=yCONFIG_TCP_CONG_DCTCP=yCONFIG_TCP_CONG_CDG=yCONFIG_TCP_CONG_BBR=y
# CONFIG_DEFAULT_BIC is not set
# CONFIG_DEFAULT_CUBIC is not set
# CONFIG_DEFAULT_HTCP is not set
# CONFIG_DEFAULT_HYBLA is not set
# CONFIG_DEFAULT_VEGAS is not set
# CONFIG_DEFAULT_VENO is not set
# CONFIG_DEFAULT_WESTWOOD is not set
# CONFIG_DEFAULT_DCTCP is not set
# CONFIG_DEFAULT_CDG is not setCONFIG_DEFAULT_BBR=y
# CONFIG_DEFAULT_RENO is not setCONFIG_DEFAULT_TCP_CONG="bbr"CONFIG_TCP_SIGPOOL=y
# CONFIG_TCP_AO is not setCONFIG_TCP_MD5SIG=yCONFIG_IPV6=yCONFIG_IPV6_ROUTER_PREF=yCONFIG_IPV6_ROUTE_INFO=yCONFIG_IPV6_OPTIMISTIC_DAD=yCONFIG_INET6_AH=yCONFIG_INET6_ESP=yCONFIG_INET6_ESP_OFFLOAD=yCONFIG_INET6_ESPINTCP=yCONFIG_INET6_IPCOMP=yCONFIG_IPV6_MIP6=yCONFIG_IPV6_ILA=yCONFIG_INET6_XFRM_TUNNEL=yCONFIG_INET6_TUNNEL=yCONFIG_IPV6_VTI=yCONFIG_IPV6_SIT=yCONFIG_IPV6_SIT_6RD=yCONFIG_IPV6_NDISC_NODETYPE=yCONFIG_IPV6_TUNNEL=yCONFIG_IPV6_GRE=yCONFIG_IPV6_FOU=yCONFIG_IPV6_FOU_TUNNEL=yCONFIG_IPV6_MULTIPLE_TABLES=yCONFIG_IPV6_SUBTREES=yCONFIG_IPV6_MROUTE=yCONFIG_IPV6_MROUTE_MULTIPLE_TABLES=yCONFIG_IPV6_PIMSM_V2=yCONFIG_IPV6_SEG6_LWTUNNEL=yCONFIG_IPV6_SEG6_HMAC=yCONFIG_IPV6_SEG6_BPF=yCONFIG_IPV6_RPL_LWTUNNEL=y
# CONFIG_IPV6_IOAM6_LWTUNNEL is not setCONFIG_NETLABEL=yCONFIG_MPTCP=yCONFIG_INET_MPTCP_DIAG=yCONFIG_MPTCP_IPV6=yCONFIG_NETWORK_SECMARK=yCONFIG_NET_PTP_CLASSIFY=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not setCONFIG_NETFILTER=yCONFIG_NETFILTER_ADVANCED=yCONFIG_BRIDGE_NETFILTER=y
#
# Core Netfilter Configuration
#CONFIG_NETFILTER_INGRESS=yCONFIG_NETFILTER_EGRESS=yCONFIG_NETFILTER_SKIP_EGRESS=yCONFIG_NETFILTER_NETLINK=yCONFIG_NETFILTER_FAMILY_BRIDGE=yCONFIG_NETFILTER_FAMILY_ARP=yCONFIG_NETFILTER_BPF_LINK=y
# CONFIG_NETFILTER_NETLINK_HOOK is not setCONFIG_NETFILTER_NETLINK_ACCT=yCONFIG_NETFILTER_NETLINK_QUEUE=yCONFIG_NETFILTER_NETLINK_LOG=yCONFIG_NETFILTER_NETLINK_OSF=yCONFIG_NF_CONNTRACK=yCONFIG_NF_LOG_SYSLOG=yCONFIG_NETFILTER_CONNCOUNT=yCONFIG_NF_CONNTRACK_MARK=yCONFIG_NF_CONNTRACK_SECMARK=yCONFIG_NF_CONNTRACK_ZONES=y
# CONFIG_NF_CONNTRACK_PROCFS is not setCONFIG_NF_CONNTRACK_EVENTS=yCONFIG_NF_CONNTRACK_TIMEOUT=yCONFIG_NF_CONNTRACK_TIMESTAMP=yCONFIG_NF_CONNTRACK_LABELS=yCONFIG_NF_CONNTRACK_OVS=yCONFIG_NF_CT_PROTO_DCCP=yCONFIG_NF_CT_PROTO_GRE=yCONFIG_NF_CT_PROTO_SCTP=yCONFIG_NF_CT_PROTO_UDPLITE=yCONFIG_NF_CONNTRACK_AMANDA=yCONFIG_NF_CONNTRACK_FTP=yCONFIG_NF_CONNTRACK_H323=yCONFIG_NF_CONNTRACK_IRC=yCONFIG_NF_CONNTRACK_BROADCAST=yCONFIG_NF_CONNTRACK_NETBIOS_NS=yCONFIG_NF_CONNTRACK_SNMP=yCONFIG_NF_CONNTRACK_PPTP=yCONFIG_NF_CONNTRACK_SANE=yCONFIG_NF_CONNTRACK_SIP=yCONFIG_NF_CONNTRACK_TFTP=yCONFIG_NF_CT_NETLINK=yCONFIG_NF_CT_NETLINK_TIMEOUT=yCONFIG_NF_CT_NETLINK_HELPER=yCONFIG_NETFILTER_NETLINK_GLUE_CT=yCONFIG_NF_NAT=yCONFIG_NF_NAT_AMANDA=yCONFIG_NF_NAT_FTP=yCONFIG_NF_NAT_IRC=yCONFIG_NF_NAT_SIP=yCONFIG_NF_NAT_TFTP=yCONFIG_NF_NAT_REDIRECT=yCONFIG_NF_NAT_MASQUERADE=yCONFIG_NF_NAT_OVS=yCONFIG_NETFILTER_SYNPROXY=yCONFIG_NF_TABLES=yCONFIG_NF_TABLES_INET=yCONFIG_NF_TABLES_NETDEV=yCONFIG_NFT_NUMGEN=yCONFIG_NFT_CT=yCONFIG_NFT_FLOW_OFFLOAD=yCONFIG_NFT_CONNLIMIT=yCONFIG_NFT_LOG=yCONFIG_NFT_LIMIT=yCONFIG_NFT_MASQ=yCONFIG_NFT_REDIR=yCONFIG_NFT_NAT=yCONFIG_NFT_TUNNEL=yCONFIG_NFT_QUEUE=yCONFIG_NFT_QUOTA=yCONFIG_NFT_REJECT=yCONFIG_NFT_REJECT_INET=yCONFIG_NFT_COMPAT=yCONFIG_NFT_HASH=yCONFIG_NFT_FIB=yCONFIG_NFT_FIB_INET=yCONFIG_NFT_XFRM=yCONFIG_NFT_SOCKET=yCONFIG_NFT_OSF=yCONFIG_NFT_TPROXY=yCONFIG_NFT_SYNPROXY=yCONFIG_NF_DUP_NETDEV=yCONFIG_NFT_DUP_NETDEV=yCONFIG_NFT_FWD_NETDEV=yCONFIG_NFT_FIB_NETDEV=yCONFIG_NFT_REJECT_NETDEV=yCONFIG_NF_FLOW_TABLE_INET=yCONFIG_NF_FLOW_TABLE=y
# CONFIG_NF_FLOW_TABLE_PROCFS is not setCONFIG_NETFILTER_XTABLES=yCONFIG_NETFILTER_XTABLES_COMPAT=y
#
# Xtables combined modules
#CONFIG_NETFILTER_XT_MARK=yCONFIG_NETFILTER_XT_CONNMARK=yCONFIG_NETFILTER_XT_SET=y
#
# Xtables targets
#CONFIG_NETFILTER_XT_TARGET_AUDIT=yCONFIG_NETFILTER_XT_TARGET_CHECKSUM=yCONFIG_NETFILTER_XT_TARGET_CLASSIFY=yCONFIG_NETFILTER_XT_TARGET_CONNMARK=yCONFIG_NETFILTER_XT_TARGET_CONNSECMARK=yCONFIG_NETFILTER_XT_TARGET_CT=yCONFIG_NETFILTER_XT_TARGET_DSCP=yCONFIG_NETFILTER_XT_TARGET_HL=yCONFIG_NETFILTER_XT_TARGET_HMARK=yCONFIG_NETFILTER_XT_TARGET_IDLETIMER=yCONFIG_NETFILTER_XT_TARGET_LED=yCONFIG_NETFILTER_XT_TARGET_LOG=yCONFIG_NETFILTER_XT_TARGET_MARK=yCONFIG_NETFILTER_XT_NAT=yCONFIG_NETFILTER_XT_TARGET_NETMAP=yCONFIG_NETFILTER_XT_TARGET_NFLOG=yCONFIG_NETFILTER_XT_TARGET_NFQUEUE=yCONFIG_NETFILTER_XT_TARGET_NOTRACK=yCONFIG_NETFILTER_XT_TARGET_RATEEST=yCONFIG_NETFILTER_XT_TARGET_REDIRECT=yCONFIG_NETFILTER_XT_TARGET_MASQUERADE=yCONFIG_NETFILTER_XT_TARGET_TEE=yCONFIG_NETFILTER_XT_TARGET_TPROXY=yCONFIG_NETFILTER_XT_TARGET_TRACE=yCONFIG_NETFILTER_XT_TARGET_SECMARK=yCONFIG_NETFILTER_XT_TARGET_TCPMSS=yCONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=y
#
# Xtables matches
#CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=yCONFIG_NETFILTER_XT_MATCH_BPF=yCONFIG_NETFILTER_XT_MATCH_CGROUP=yCONFIG_NETFILTER_XT_MATCH_CLUSTER=yCONFIG_NETFILTER_XT_MATCH_COMMENT=yCONFIG_NETFILTER_XT_MATCH_CONNBYTES=yCONFIG_NETFILTER_XT_MATCH_CONNLABEL=yCONFIG_NETFILTER_XT_MATCH_CONNLIMIT=yCONFIG_NETFILTER_XT_MATCH_CONNMARK=yCONFIG_NETFILTER_XT_MATCH_CONNTRACK=yCONFIG_NETFILTER_XT_MATCH_CPU=yCONFIG_NETFILTER_XT_MATCH_DCCP=yCONFIG_NETFILTER_XT_MATCH_DEVGROUP=yCONFIG_NETFILTER_XT_MATCH_DSCP=yCONFIG_NETFILTER_XT_MATCH_ECN=yCONFIG_NETFILTER_XT_MATCH_ESP=yCONFIG_NETFILTER_XT_MATCH_HASHLIMIT=yCONFIG_NETFILTER_XT_MATCH_HELPER=yCONFIG_NETFILTER_XT_MATCH_HL=yCONFIG_NETFILTER_XT_MATCH_IPCOMP=yCONFIG_NETFILTER_XT_MATCH_IPRANGE=yCONFIG_NETFILTER_XT_MATCH_IPVS=yCONFIG_NETFILTER_XT_MATCH_L2TP=yCONFIG_NETFILTER_XT_MATCH_LENGTH=yCONFIG_NETFILTER_XT_MATCH_LIMIT=yCONFIG_NETFILTER_XT_MATCH_MAC=yCONFIG_NETFILTER_XT_MATCH_MARK=yCONFIG_NETFILTER_XT_MATCH_MULTIPORT=yCONFIG_NETFILTER_XT_MATCH_NFACCT=yCONFIG_NETFILTER_XT_MATCH_OSF=yCONFIG_NETFILTER_XT_MATCH_OWNER=yCONFIG_NETFILTER_XT_MATCH_POLICY=yCONFIG_NETFILTER_XT_MATCH_PHYSDEV=yCONFIG_NETFILTER_XT_MATCH_PKTTYPE=yCONFIG_NETFILTER_XT_MATCH_QUOTA=yCONFIG_NETFILTER_XT_MATCH_RATEEST=yCONFIG_NETFILTER_XT_MATCH_REALM=yCONFIG_NETFILTER_XT_MATCH_RECENT=yCONFIG_NETFILTER_XT_MATCH_SCTP=yCONFIG_NETFILTER_XT_MATCH_SOCKET=yCONFIG_NETFILTER_XT_MATCH_STATE=yCONFIG_NETFILTER_XT_MATCH_STATISTIC=yCONFIG_NETFILTER_XT_MATCH_STRING=yCONFIG_NETFILTER_XT_MATCH_TCPMSS=yCONFIG_NETFILTER_XT_MATCH_TIME=yCONFIG_NETFILTER_XT_MATCH_U32=y
# end of Core Netfilter Configuration
CONFIG_IP_SET=yCONFIG_IP_SET_MAX=256CONFIG_IP_SET_BITMAP_IP=yCONFIG_IP_SET_BITMAP_IPMAC=yCONFIG_IP_SET_BITMAP_PORT=yCONFIG_IP_SET_HASH_IP=yCONFIG_IP_SET_HASH_IPMARK=yCONFIG_IP_SET_HASH_IPPORT=yCONFIG_IP_SET_HASH_IPPORTIP=yCONFIG_IP_SET_HASH_IPPORTNET=yCONFIG_IP_SET_HASH_IPMAC=yCONFIG_IP_SET_HASH_MAC=yCONFIG_IP_SET_HASH_NETPORTNET=yCONFIG_IP_SET_HASH_NET=yCONFIG_IP_SET_HASH_NETNET=yCONFIG_IP_SET_HASH_NETPORT=yCONFIG_IP_SET_HASH_NETIFACE=yCONFIG_IP_SET_LIST_SET=yCONFIG_IP_VS=yCONFIG_IP_VS_IPV6=y
# CONFIG_IP_VS_DEBUG is not setCONFIG_IP_VS_TAB_BITS=12
#
# IPVS transport protocol load balancing support
#CONFIG_IP_VS_PROTO_TCP=yCONFIG_IP_VS_PROTO_UDP=yCONFIG_IP_VS_PROTO_AH_ESP=yCONFIG_IP_VS_PROTO_ESP=yCONFIG_IP_VS_PROTO_AH=yCONFIG_IP_VS_PROTO_SCTP=y
#
# IPVS scheduler
#CONFIG_IP_VS_RR=yCONFIG_IP_VS_WRR=yCONFIG_IP_VS_LC=yCONFIG_IP_VS_WLC=yCONFIG_IP_VS_FO=yCONFIG_IP_VS_OVF=yCONFIG_IP_VS_LBLC=yCONFIG_IP_VS_LBLCR=yCONFIG_IP_VS_DH=yCONFIG_IP_VS_SH=yCONFIG_IP_VS_MH=yCONFIG_IP_VS_SED=yCONFIG_IP_VS_NQ=yCONFIG_IP_VS_TWOS=y
#
# IPVS SH scheduler
#CONFIG_IP_VS_SH_TAB_BITS=8
#
# IPVS MH scheduler
#CONFIG_IP_VS_MH_TAB_INDEX=12
#
# IPVS application helper
#CONFIG_IP_VS_FTP=yCONFIG_IP_VS_NFCT=yCONFIG_IP_VS_PE_SIP=y
#
# IP: Netfilter Configuration
#CONFIG_NF_DEFRAG_IPV4=yCONFIG_IP_NF_IPTABLES_LEGACY=yCONFIG_NF_SOCKET_IPV4=yCONFIG_NF_TPROXY_IPV4=yCONFIG_NF_TABLES_IPV4=yCONFIG_NFT_REJECT_IPV4=yCONFIG_NFT_DUP_IPV4=yCONFIG_NFT_FIB_IPV4=yCONFIG_NF_TABLES_ARP=yCONFIG_NF_DUP_IPV4=yCONFIG_NF_LOG_ARP=y
# CONFIG_NF_LOG_IPV4 is not setCONFIG_NF_REJECT_IPV4=yCONFIG_NF_NAT_SNMP_BASIC=yCONFIG_NF_NAT_PPTP=yCONFIG_NF_NAT_H323=yCONFIG_IP_NF_IPTABLES=yCONFIG_IP_NF_MATCH_AH=yCONFIG_IP_NF_MATCH_ECN=yCONFIG_IP_NF_MATCH_RPFILTER=yCONFIG_IP_NF_MATCH_TTL=yCONFIG_IP_NF_FILTER=yCONFIG_IP_NF_TARGET_REJECT=yCONFIG_IP_NF_TARGET_SYNPROXY=yCONFIG_IP_NF_NAT=yCONFIG_IP_NF_TARGET_MASQUERADE=yCONFIG_IP_NF_TARGET_NETMAP=yCONFIG_IP_NF_TARGET_REDIRECT=yCONFIG_IP_NF_MANGLE=yCONFIG_IP_NF_TARGET_ECN=yCONFIG_IP_NF_TARGET_TTL=yCONFIG_IP_NF_RAW=yCONFIG_IP_NF_SECURITY=yCONFIG_IP_NF_ARPTABLES=yCONFIG_NFT_COMPAT_ARP=yCONFIG_IP_NF_ARPFILTER=yCONFIG_IP_NF_ARP_MANGLE=y
# end of IP: Netfilter Configuration
#
# IPv6: Netfilter Configuration
#CONFIG_IP6_NF_IPTABLES_LEGACY=yCONFIG_NF_SOCKET_IPV6=yCONFIG_NF_TPROXY_IPV6=yCONFIG_NF_TABLES_IPV6=yCONFIG_NFT_REJECT_IPV6=yCONFIG_NFT_DUP_IPV6=yCONFIG_NFT_FIB_IPV6=yCONFIG_NF_DUP_IPV6=yCONFIG_NF_REJECT_IPV6=yCONFIG_NF_LOG_IPV6=yCONFIG_IP6_NF_IPTABLES=yCONFIG_IP6_NF_MATCH_AH=yCONFIG_IP6_NF_MATCH_EUI64=yCONFIG_IP6_NF_MATCH_FRAG=yCONFIG_IP6_NF_MATCH_OPTS=yCONFIG_IP6_NF_MATCH_HL=yCONFIG_IP6_NF_MATCH_IPV6HEADER=yCONFIG_IP6_NF_MATCH_MH=yCONFIG_IP6_NF_MATCH_RPFILTER=yCONFIG_IP6_NF_MATCH_RT=yCONFIG_IP6_NF_MATCH_SRH=yCONFIG_IP6_NF_TARGET_HL=yCONFIG_IP6_NF_FILTER=yCONFIG_IP6_NF_TARGET_REJECT=yCONFIG_IP6_NF_TARGET_SYNPROXY=yCONFIG_IP6_NF_MANGLE=yCONFIG_IP6_NF_RAW=yCONFIG_IP6_NF_SECURITY=yCONFIG_IP6_NF_NAT=yCONFIG_IP6_NF_TARGET_MASQUERADE=yCONFIG_IP6_NF_TARGET_NPT=y
# end of IPv6: Netfilter Configuration
CONFIG_NF_DEFRAG_IPV6=yCONFIG_NF_TABLES_BRIDGE=yCONFIG_NFT_BRIDGE_META=yCONFIG_NFT_BRIDGE_REJECT=yCONFIG_NF_CONNTRACK_BRIDGE=yCONFIG_BRIDGE_NF_EBTABLES_LEGACY=yCONFIG_BRIDGE_NF_EBTABLES=yCONFIG_BRIDGE_EBT_BROUTE=yCONFIG_BRIDGE_EBT_T_FILTER=yCONFIG_BRIDGE_EBT_T_NAT=yCONFIG_BRIDGE_EBT_802_3=yCONFIG_BRIDGE_EBT_AMONG=yCONFIG_BRIDGE_EBT_ARP=yCONFIG_BRIDGE_EBT_IP=yCONFIG_BRIDGE_EBT_IP6=yCONFIG_BRIDGE_EBT_LIMIT=yCONFIG_BRIDGE_EBT_MARK=yCONFIG_BRIDGE_EBT_PKTTYPE=yCONFIG_BRIDGE_EBT_STP=yCONFIG_BRIDGE_EBT_VLAN=yCONFIG_BRIDGE_EBT_ARPREPLY=yCONFIG_BRIDGE_EBT_DNAT=yCONFIG_BRIDGE_EBT_MARK_T=yCONFIG_BRIDGE_EBT_REDIRECT=yCONFIG_BRIDGE_EBT_SNAT=yCONFIG_BRIDGE_EBT_LOG=yCONFIG_BRIDGE_EBT_NFLOG=yCONFIG_IP_SCTP=y
# CONFIG_SCTP_DBG_OBJCNT is not setCONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not setCONFIG_SCTP_COOKIE_HMAC_MD5=yCONFIG_SCTP_COOKIE_HMAC_SHA1=yCONFIG_INET_SCTP_DIAG=yCONFIG_RDS=yCONFIG_RDS_RDMA=yCONFIG_RDS_TCP=y
# CONFIG_RDS_DEBUG is not setCONFIG_TIPC=yCONFIG_TIPC_MEDIA_IB=yCONFIG_TIPC_MEDIA_UDP=yCONFIG_TIPC_CRYPTO=yCONFIG_TIPC_DIAG=yCONFIG_ATM=yCONFIG_ATM_CLIP=y
# CONFIG_ATM_CLIP_NO_ICMP is not setCONFIG_ATM_LANE=yCONFIG_ATM_MPOA=yCONFIG_ATM_BR2684=y
# CONFIG_ATM_BR2684_IPFILTER is not setCONFIG_L2TP=y
# CONFIG_L2TP_DEBUGFS is not setCONFIG_L2TP_V3=yCONFIG_L2TP_IP=yCONFIG_L2TP_ETH=yCONFIG_STP=yCONFIG_GARP=yCONFIG_MRP=yCONFIG_BRIDGE=yCONFIG_BRIDGE_IGMP_SNOOPING=yCONFIG_BRIDGE_VLAN_FILTERING=yCONFIG_BRIDGE_MRP=yCONFIG_BRIDGE_CFM=yCONFIG_NET_DSA=yCONFIG_NET_DSA_TAG_NONE=y
# CONFIG_NET_DSA_TAG_AR9331 is not setCONFIG_NET_DSA_TAG_BRCM_COMMON=yCONFIG_NET_DSA_TAG_BRCM=yCONFIG_NET_DSA_TAG_BRCM_LEGACY=yCONFIG_NET_DSA_TAG_BRCM_PREPEND=y
# CONFIG_NET_DSA_TAG_HELLCREEK is not set
# CONFIG_NET_DSA_TAG_GSWIP is not set
# CONFIG_NET_DSA_TAG_DSA is not set
# CONFIG_NET_DSA_TAG_EDSA is not setCONFIG_NET_DSA_TAG_MTK=y
# CONFIG_NET_DSA_TAG_KSZ is not setCONFIG_NET_DSA_TAG_OCELOT=yCONFIG_NET_DSA_TAG_OCELOT_8021Q=yCONFIG_NET_DSA_TAG_QCA=yCONFIG_NET_DSA_TAG_RTL4_A=y
# CONFIG_NET_DSA_TAG_RTL8_4 is not set
# CONFIG_NET_DSA_TAG_RZN1_A5PSW is not set
# CONFIG_NET_DSA_TAG_LAN9303 is not set
# CONFIG_NET_DSA_TAG_SJA1105 is not set
# CONFIG_NET_DSA_TAG_TRAILER is not set
# CONFIG_NET_DSA_TAG_VSC73XX_8021Q is not set
# CONFIG_NET_DSA_TAG_XRS700X is not setCONFIG_VLAN_8021Q=yCONFIG_VLAN_8021Q_GVRP=yCONFIG_VLAN_8021Q_MVRP=yCONFIG_LLC=yCONFIG_LLC2=y
# CONFIG_ATALK is not setCONFIG_X25=yCONFIG_LAPB=yCONFIG_PHONET=yCONFIG_6LOWPAN=y
# CONFIG_6LOWPAN_DEBUGFS is not setCONFIG_6LOWPAN_NHC=yCONFIG_6LOWPAN_NHC_DEST=yCONFIG_6LOWPAN_NHC_FRAGMENT=yCONFIG_6LOWPAN_NHC_HOP=yCONFIG_6LOWPAN_NHC_IPV6=yCONFIG_6LOWPAN_NHC_MOBILITY=yCONFIG_6LOWPAN_NHC_ROUTING=yCONFIG_6LOWPAN_NHC_UDP=yCONFIG_6LOWPAN_GHC_EXT_HDR_HOP=yCONFIG_6LOWPAN_GHC_UDP=yCONFIG_6LOWPAN_GHC_ICMPV6=yCONFIG_6LOWPAN_GHC_EXT_HDR_DEST=yCONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=yCONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=yCONFIG_IEEE802154=yCONFIG_IEEE802154_NL802154_EXPERIMENTAL=yCONFIG_IEEE802154_SOCKET=yCONFIG_IEEE802154_6LOWPAN=yCONFIG_MAC802154=yCONFIG_NET_SCHED=y
#
# Queueing/Scheduling
#CONFIG_NET_SCH_HTB=yCONFIG_NET_SCH_HFSC=yCONFIG_NET_SCH_PRIO=yCONFIG_NET_SCH_MULTIQ=yCONFIG_NET_SCH_RED=yCONFIG_NET_SCH_SFB=yCONFIG_NET_SCH_SFQ=yCONFIG_NET_SCH_TEQL=yCONFIG_NET_SCH_TBF=yCONFIG_NET_SCH_CBS=yCONFIG_NET_SCH_ETF=yCONFIG_NET_SCH_MQPRIO_LIB=yCONFIG_NET_SCH_TAPRIO=yCONFIG_NET_SCH_GRED=yCONFIG_NET_SCH_NETEM=yCONFIG_NET_SCH_DRR=yCONFIG_NET_SCH_MQPRIO=yCONFIG_NET_SCH_SKBPRIO=yCONFIG_NET_SCH_CHOKE=yCONFIG_NET_SCH_QFQ=yCONFIG_NET_SCH_CODEL=yCONFIG_NET_SCH_FQ_CODEL=yCONFIG_NET_SCH_CAKE=yCONFIG_NET_SCH_FQ=yCONFIG_NET_SCH_HHF=yCONFIG_NET_SCH_PIE=yCONFIG_NET_SCH_FQ_PIE=yCONFIG_NET_SCH_INGRESS=yCONFIG_NET_SCH_PLUG=yCONFIG_NET_SCH_ETS=yCONFIG_NET_SCH_DEFAULT=y
# CONFIG_DEFAULT_FQ is not setCONFIG_DEFAULT_CODEL=y
# CONFIG_DEFAULT_FQ_CODEL is not set
# CONFIG_DEFAULT_FQ_PIE is not set
# CONFIG_DEFAULT_SFQ is not set
# CONFIG_DEFAULT_PFIFO_FAST is not setCONFIG_DEFAULT_NET_SCH="pfifo_fast"
#
# Classification
#CONFIG_NET_CLS=yCONFIG_NET_CLS_BASIC=yCONFIG_NET_CLS_ROUTE4=yCONFIG_NET_CLS_FW=yCONFIG_NET_CLS_U32=yCONFIG_CLS_U32_PERF=yCONFIG_CLS_U32_MARK=yCONFIG_NET_CLS_FLOW=yCONFIG_NET_CLS_CGROUP=yCONFIG_NET_CLS_BPF=yCONFIG_NET_CLS_FLOWER=yCONFIG_NET_CLS_MATCHALL=yCONFIG_NET_EMATCH=yCONFIG_NET_EMATCH_STACK=32CONFIG_NET_EMATCH_CMP=yCONFIG_NET_EMATCH_NBYTE=yCONFIG_NET_EMATCH_U32=yCONFIG_NET_EMATCH_META=yCONFIG_NET_EMATCH_TEXT=yCONFIG_NET_EMATCH_CANID=yCONFIG_NET_EMATCH_IPSET=yCONFIG_NET_EMATCH_IPT=yCONFIG_NET_CLS_ACT=yCONFIG_NET_ACT_POLICE=yCONFIG_NET_ACT_GACT=yCONFIG_GACT_PROB=yCONFIG_NET_ACT_MIRRED=yCONFIG_NET_ACT_SAMPLE=yCONFIG_NET_ACT_NAT=yCONFIG_NET_ACT_PEDIT=yCONFIG_NET_ACT_SIMP=yCONFIG_NET_ACT_SKBEDIT=yCONFIG_NET_ACT_CSUM=yCONFIG_NET_ACT_MPLS=yCONFIG_NET_ACT_VLAN=yCONFIG_NET_ACT_BPF=yCONFIG_NET_ACT_CONNMARK=yCONFIG_NET_ACT_CTINFO=yCONFIG_NET_ACT_SKBMOD=yCONFIG_NET_ACT_IFE=yCONFIG_NET_ACT_TUNNEL_KEY=yCONFIG_NET_ACT_CT=yCONFIG_NET_ACT_GATE=yCONFIG_NET_IFE_SKBMARK=yCONFIG_NET_IFE_SKBPRIO=yCONFIG_NET_IFE_SKBTCINDEX=yCONFIG_NET_TC_SKB_EXT=yCONFIG_NET_SCH_FIFO=yCONFIG_DCB=yCONFIG_DNS_RESOLVER=yCONFIG_BATMAN_ADV=yCONFIG_BATMAN_ADV_BATMAN_V=yCONFIG_BATMAN_ADV_BLA=yCONFIG_BATMAN_ADV_DAT=yCONFIG_BATMAN_ADV_NC=yCONFIG_BATMAN_ADV_MCAST=y
# CONFIG_BATMAN_ADV_DEBUG is not set
# CONFIG_BATMAN_ADV_TRACING is not setCONFIG_OPENVSWITCH=yCONFIG_OPENVSWITCH_GRE=yCONFIG_OPENVSWITCH_VXLAN=yCONFIG_OPENVSWITCH_GENEVE=yCONFIG_VSOCKETS=yCONFIG_VSOCKETS_DIAG=yCONFIG_VSOCKETS_LOOPBACK=yCONFIG_VIRTIO_VSOCKETS=yCONFIG_VIRTIO_VSOCKETS_COMMON=yCONFIG_NETLINK_DIAG=yCONFIG_MPLS=yCONFIG_NET_MPLS_GSO=yCONFIG_MPLS_ROUTING=yCONFIG_MPLS_IPTUNNEL=yCONFIG_NET_NSH=yCONFIG_HSR=yCONFIG_NET_SWITCHDEV=yCONFIG_NET_L3_MASTER_DEV=yCONFIG_QRTR=yCONFIG_QRTR_SMD=yCONFIG_QRTR_TUN=yCONFIG_QRTR_MHI=yCONFIG_NET_NCSI=y
# CONFIG_NCSI_OEM_CMD_GET_MAC is not set
# CONFIG_NCSI_OEM_CMD_KEEP_PHY is not set
# CONFIG_PCPU_DEV_REFCNT is not setCONFIG_MAX_SKB_FRAGS=17CONFIG_RPS=yCONFIG_RFS_ACCEL=yCONFIG_SOCK_RX_QUEUE_MAPPING=yCONFIG_XPS=yCONFIG_CGROUP_NET_PRIO=yCONFIG_CGROUP_NET_CLASSID=yCONFIG_NET_RX_BUSY_POLL=yCONFIG_BQL=yCONFIG_BPF_STREAM_PARSER=yCONFIG_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_HAMRADIO=y
#
# Packet Radio protocols
#CONFIG_AX25=yCONFIG_AX25_DAMA_SLAVE=yCONFIG_NETROM=yCONFIG_ROSE=y
#
# AX.25 network device drivers
#CONFIG_MKISS=yCONFIG_6PACK=yCONFIG_BPQETHER=y
# CONFIG_BAYCOM_SER_FDX is not set
# CONFIG_BAYCOM_SER_HDX is not set
# CONFIG_BAYCOM_PAR is not set
# CONFIG_YAM is not set
# end of AX.25 network device drivers
CONFIG_CAN=yCONFIG_CAN_RAW=yCONFIG_CAN_BCM=yCONFIG_CAN_GW=yCONFIG_CAN_J1939=yCONFIG_CAN_ISOTP=yCONFIG_BT=yCONFIG_BT_BREDR=yCONFIG_BT_RFCOMM=yCONFIG_BT_RFCOMM_TTY=yCONFIG_BT_BNEP=yCONFIG_BT_BNEP_MC_FILTER=yCONFIG_BT_BNEP_PROTO_FILTER=yCONFIG_BT_HIDP=yCONFIG_BT_LE=yCONFIG_BT_LE_L2CAP_ECRED=yCONFIG_BT_6LOWPAN=yCONFIG_BT_LEDS=yCONFIG_BT_MSFTEXT=y
# CONFIG_BT_AOSPEXT is not set
# CONFIG_BT_DEBUGFS is not set
# CONFIG_BT_SELFTEST is not set
#
# Bluetooth device drivers
#CONFIG_BT_INTEL=yCONFIG_BT_BCM=yCONFIG_BT_RTL=yCONFIG_BT_QCA=yCONFIG_BT_MTK=yCONFIG_BT_HCIBTUSB=yCONFIG_BT_HCIBTUSB_AUTOSUSPEND=yCONFIG_BT_HCIBTUSB_POLL_SYNC=yCONFIG_BT_HCIBTUSB_BCM=yCONFIG_BT_HCIBTUSB_MTK=yCONFIG_BT_HCIBTUSB_RTL=y
# CONFIG_BT_HCIBTSDIO is not setCONFIG_BT_HCIUART=yCONFIG_BT_HCIUART_SERDEV=yCONFIG_BT_HCIUART_H4=y
# CONFIG_BT_HCIUART_NOKIA is not setCONFIG_BT_HCIUART_BCSP=y
# CONFIG_BT_HCIUART_ATH3K is not setCONFIG_BT_HCIUART_LL=yCONFIG_BT_HCIUART_3WIRE=y
# CONFIG_BT_HCIUART_INTEL is not setCONFIG_BT_HCIUART_BCM=y
# CONFIG_BT_HCIUART_RTL is not setCONFIG_BT_HCIUART_QCA=yCONFIG_BT_HCIUART_AG6XX=yCONFIG_BT_HCIUART_MRVL=y
# CONFIG_BT_HCIUART_AML is not setCONFIG_BT_HCIBCM203X=y
# CONFIG_BT_HCIBCM4377 is not setCONFIG_BT_HCIBPA10X=yCONFIG_BT_HCIBFUSB=y
# CONFIG_BT_HCIDTL1 is not set
# CONFIG_BT_HCIBT3C is not set
# CONFIG_BT_HCIBLUECARD is not setCONFIG_BT_HCIVHCI=yCONFIG_BT_MRVL=yCONFIG_BT_MRVL_SDIO=yCONFIG_BT_ATH3K=yCONFIG_BT_MTKSDIO=yCONFIG_BT_MTKUART=yCONFIG_BT_QCOMSMD=y
# CONFIG_BT_VIRTIO is not setCONFIG_BT_NXPUART=y
# CONFIG_BT_INTEL_PCIE is not set
# end of Bluetooth device drivers
CONFIG_AF_RXRPC=yCONFIG_AF_RXRPC_IPV6=y
# CONFIG_AF_RXRPC_INJECT_LOSS is not set
# CONFIG_AF_RXRPC_INJECT_RX_DELAY is not set
# CONFIG_AF_RXRPC_DEBUG is not setCONFIG_RXKAD=y
# CONFIG_RXGK is not set
# CONFIG_RXPERF is not setCONFIG_AF_KCM=yCONFIG_STREAM_PARSER=yCONFIG_MCTP=yCONFIG_FIB_RULES=yCONFIG_WIRELESS=yCONFIG_WEXT_CORE=yCONFIG_WEXT_PROC=yCONFIG_CFG80211=y
# CONFIG_NL80211_TESTMODE is not set
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
# CONFIG_CFG80211_CERTIFICATION_ONUS is not setCONFIG_CFG80211_REQUIRE_SIGNED_REGDB=yCONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=yCONFIG_CFG80211_DEFAULT_PS=yCONFIG_CFG80211_DEBUGFS=yCONFIG_CFG80211_CRDA_SUPPORT=yCONFIG_CFG80211_WEXT=yCONFIG_MAC80211=yCONFIG_MAC80211_HAS_RC=yCONFIG_MAC80211_RC_MINSTREL=yCONFIG_MAC80211_RC_DEFAULT_MINSTREL=yCONFIG_MAC80211_RC_DEFAULT="minstrel_ht"CONFIG_MAC80211_MESH=yCONFIG_MAC80211_LEDS=yCONFIG_MAC80211_DEBUGFS=y
# CONFIG_MAC80211_MESSAGE_TRACING is not set
# CONFIG_MAC80211_DEBUG_MENU is not setCONFIG_MAC80211_STA_HASH_MAX_SIZE=0CONFIG_RFKILL=yCONFIG_RFKILL_LEDS=yCONFIG_RFKILL_INPUT=yCONFIG_RFKILL_GPIO=yCONFIG_NET_9P=yCONFIG_NET_9P_FD=yCONFIG_NET_9P_VIRTIO=y
# CONFIG_NET_9P_USBG is not setCONFIG_NET_9P_RDMA=y
# CONFIG_NET_9P_DEBUG is not setCONFIG_CAIF=yCONFIG_CAIF_DEBUG=yCONFIG_CAIF_NETDEV=yCONFIG_CAIF_USB=yCONFIG_CEPH_LIB=y
# CONFIG_CEPH_LIB_PRETTYDEBUG is not setCONFIG_CEPH_LIB_USE_DNS_RESOLVER=yCONFIG_NFC=yCONFIG_NFC_DIGITAL=yCONFIG_NFC_NCI=y
# CONFIG_NFC_NCI_SPI is not setCONFIG_NFC_NCI_UART=yCONFIG_NFC_HCI=yCONFIG_NFC_SHDLC=y
#
# Near Field Communication (NFC) devices
#
# CONFIG_NFC_TRF7970A is not setCONFIG_NFC_SIM=yCONFIG_NFC_PORT100=yCONFIG_NFC_VIRTUAL_NCI=yCONFIG_NFC_FDP=y
# CONFIG_NFC_FDP_I2C is not set
# CONFIG_NFC_PN544_I2C is not setCONFIG_NFC_PN533=yCONFIG_NFC_PN533_USB=y
# CONFIG_NFC_PN533_I2C is not set
# CONFIG_NFC_PN532_UART is not set
# CONFIG_NFC_MICROREAD_I2C is not setCONFIG_NFC_MRVL=yCONFIG_NFC_MRVL_USB=y
# CONFIG_NFC_MRVL_UART is not set
# CONFIG_NFC_MRVL_I2C is not set
# CONFIG_NFC_ST21NFCA_I2C is not set
# CONFIG_NFC_ST_NCI_I2C is not set
# CONFIG_NFC_ST_NCI_SPI is not set
# CONFIG_NFC_NXP_NCI is not setCONFIG_NFC_S3FWRN5=yCONFIG_NFC_S3FWRN5_I2C=y
# CONFIG_NFC_S3FWRN82_UART is not set
# CONFIG_NFC_ST95HF is not set
# end of Near Field Communication (NFC) devices
CONFIG_PSAMPLE=yCONFIG_NET_IFE=yCONFIG_LWTUNNEL=yCONFIG_LWTUNNEL_BPF=yCONFIG_DST_CACHE=yCONFIG_GRO_CELLS=yCONFIG_SOCK_VALIDATE_XMIT=yCONFIG_NET_SELFTESTS=yCONFIG_NET_SOCK_MSG=yCONFIG_NET_DEVLINK=yCONFIG_PAGE_POOL=yCONFIG_PAGE_POOL_STATS=yCONFIG_FAILOVER=yCONFIG_ETHTOOL_NETLINK=y
#
# Device Drivers
#CONFIG_ARM_AMBA=yCONFIG_TEGRA_AHB=yCONFIG_HAVE_PCI=yCONFIG_GENERIC_PCI_IOMAP=yCONFIG_PCI=yCONFIG_PCI_DOMAINS=yCONFIG_PCI_DOMAINS_GENERIC=yCONFIG_PCI_SYSCALL=yCONFIG_PCIEPORTBUS=yCONFIG_HOTPLUG_PCI_PCIE=yCONFIG_PCIEAER=y
# CONFIG_PCIEAER_INJECT is not set
# CONFIG_PCIE_ECRC is not setCONFIG_PCIEASPM=yCONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not setCONFIG_PCIE_PME=y
# CONFIG_PCIE_DPC is not set
# CONFIG_PCIE_PTM is not setCONFIG_PCI_MSI=yCONFIG_PCI_QUIRKS=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
# CONFIG_PCI_STUB is not set
# CONFIG_PCI_PF_STUB is not setCONFIG_PCI_ATS=y
# CONFIG_PCI_DOE is not setCONFIG_PCI_ECAM=yCONFIG_PCI_BRIDGE_EMUL=yCONFIG_PCI_IOV=y
# CONFIG_PCI_NPEM is not set
# CONFIG_PCI_PRI is not setCONFIG_PCI_PASID=y
# CONFIG_PCIE_TPH is not set
# CONFIG_PCI_P2PDMA is not setCONFIG_PCI_LABEL=y
# CONFIG_PCI_DYNAMIC_OF_NODES is not set
# CONFIG_PCIE_BUS_TUNE_OFF is not setCONFIG_PCIE_BUS_DEFAULT=y
# CONFIG_PCIE_BUS_SAFE is not set
# CONFIG_PCIE_BUS_PERFORMANCE is not set
# CONFIG_PCIE_BUS_PEER2PEER is not setCONFIG_VGA_ARB=yCONFIG_VGA_ARB_MAX_GPUS=16CONFIG_HOTPLUG_PCI=yCONFIG_HOTPLUG_PCI_ACPI=y
# CONFIG_HOTPLUG_PCI_ACPI_AMPERE_ALTRA is not set
# CONFIG_HOTPLUG_PCI_ACPI_IBM 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_PCI_HOST_COMMON=yCONFIG_PCI_AARDVARK=yCONFIG_PCIE_ALTERA=yCONFIG_PCIE_ALTERA_MSI=y
# CONFIG_PCIE_APPLE is not setCONFIG_PCIE_BRCMSTB=yCONFIG_PCIE_IPROC=yCONFIG_PCIE_IPROC_PLATFORM=yCONFIG_PCIE_IPROC_MSI=yCONFIG_PCI_HOST_THUNDER_PEM=yCONFIG_PCI_HOST_THUNDER_ECAM=y
# CONFIG_PCI_FTPCI100 is not setCONFIG_PCI_HOST_GENERIC=y
# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_MEDIATEK is not setCONFIG_PCIE_MEDIATEK_GEN3=yCONFIG_PCI_TEGRA=yCONFIG_PCIE_RCAR_HOST=yCONFIG_PCIE_RCAR_EP=yCONFIG_PCIE_ROCKCHIP=yCONFIG_PCIE_ROCKCHIP_HOST=y
# CONFIG_PCIE_ROCKCHIP_EP is not setCONFIG_PCI_XGENE=yCONFIG_PCI_XGENE_MSI=y
# CONFIG_PCIE_XILINX is not set
# CONFIG_PCIE_XILINX_DMA_PL is not set
# CONFIG_PCIE_XILINX_NWL is not set
# CONFIG_PCIE_XILINX_CPM is not set
#
# Cadence-based PCIe controllers
#
# CONFIG_PCIE_CADENCE_PLAT_HOST is not set
# CONFIG_PCIE_CADENCE_PLAT_EP is not set
# CONFIG_PCI_J721E_HOST is not set
# CONFIG_PCI_J721E_EP is not set
# end of Cadence-based PCIe controllers
#
# DesignWare-based PCIe controllers
#CONFIG_PCIE_DW=y
# CONFIG_PCIE_DW_DEBUGFS is not setCONFIG_PCIE_DW_HOST=yCONFIG_PCIE_DW_EP=y
# CONFIG_PCIE_AL is not set
# CONFIG_PCIE_AMD_MDB is not setCONFIG_PCI_MESON=yCONFIG_PCI_IMX6=yCONFIG_PCI_IMX6_HOST=y
# CONFIG_PCI_IMX6_EP is not setCONFIG_PCI_LAYERSCAPE=y
# CONFIG_PCI_LAYERSCAPE_EP is not setCONFIG_PCI_HISI=yCONFIG_PCIE_KIRIN=yCONFIG_PCIE_HISI_STB=y
# CONFIG_PCIE_KEEMBAY_HOST is not set
# CONFIG_PCIE_KEEMBAY_EP is not setCONFIG_PCIE_ARMADA_8K=yCONFIG_PCIE_TEGRA194=yCONFIG_PCIE_TEGRA194_HOST=yCONFIG_PCIE_TEGRA194_EP=y
# CONFIG_PCIE_DW_PLAT_HOST is not set
# CONFIG_PCIE_DW_PLAT_EP is not setCONFIG_PCIE_QCOM_COMMON=yCONFIG_PCIE_QCOM=y
# CONFIG_PCIE_QCOM_EP is not setCONFIG_PCIE_RCAR_GEN4=yCONFIG_PCIE_RCAR_GEN4_HOST=yCONFIG_PCIE_RCAR_GEN4_EP=yCONFIG_PCIE_ROCKCHIP_DW=yCONFIG_PCIE_ROCKCHIP_DW_HOST=y
# CONFIG_PCIE_ROCKCHIP_DW_EP is not set
# CONFIG_PCI_EXYNOS is not set
# CONFIG_PCIE_UNIPHIER is not set
# CONFIG_PCIE_UNIPHIER_EP is not set
# CONFIG_PCI_KEYSTONE_HOST is not set
# CONFIG_PCI_KEYSTONE_EP is not setCONFIG_PCIE_VISCONTI_HOST=y
# end of DesignWare-based PCIe controllers
#
# Mobiveil-based PCIe controllers
#CONFIG_PCIE_MOBIVEIL=yCONFIG_PCIE_MOBIVEIL_HOST=yCONFIG_PCIE_LAYERSCAPE_GEN4=y
# CONFIG_PCIE_MOBIVEIL_PLAT is not set
# end of Mobiveil-based PCIe controllers
#
# PLDA-based PCIe controllers
#
# CONFIG_PCIE_MICROCHIP_HOST is not set
# end of PLDA-based PCIe controllers # end of PCI controller drivers
#
# PCI Endpoint
#CONFIG_PCI_ENDPOINT=yCONFIG_PCI_ENDPOINT_CONFIGFS=yCONFIG_PCI_EPF_TEST=y
# CONFIG_PCI_EPF_NTB 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_HAVE_PWRCTRL=yCONFIG_PCI_PWRCTRL=yCONFIG_PCI_PWRCTRL_PWRSEQ=y
# CONFIG_PCI_PWRCTRL_SLOT is not set
# CONFIG_CXL_BUS is not setCONFIG_PCCARD=yCONFIG_PCMCIA=y
# CONFIG_PCMCIA_LOAD_CIS is not set
# CONFIG_CARDBUS is not set
#
# PC-card bridges
#
# CONFIG_YENTA is not set
# CONFIG_PD6729 is not set
# CONFIG_I82092 is not set
# CONFIG_RAPIDIO is not set
#
# Generic Driver Options
#CONFIG_AUXILIARY_BUS=yCONFIG_UEVENT_HELPER=yCONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"CONFIG_DEVTMPFS=yCONFIG_DEVTMPFS_MOUNT=y
# CONFIG_DEVTMPFS_SAFE is not setCONFIG_STANDALONE=yCONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Firmware loader
#CONFIG_FW_LOADER=y
# CONFIG_FW_LOADER_DEBUG is not setCONFIG_FW_LOADER_PAGED_BUF=yCONFIG_FW_LOADER_SYSFS=yCONFIG_EXTRA_FIRMWARE=""CONFIG_FW_LOADER_USER_HELPER=yCONFIG_FW_LOADER_USER_HELPER_FALLBACK=yCONFIG_FW_LOADER_COMPRESS=y
# CONFIG_FW_LOADER_COMPRESS_XZ is not set
# CONFIG_FW_LOADER_COMPRESS_ZSTD is not setCONFIG_FW_CACHE=yCONFIG_FW_UPLOAD=y
# end of Firmware loader
CONFIG_WANT_DEV_COREDUMP=yCONFIG_ALLOW_DEV_COREDUMP=yCONFIG_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not setCONFIG_DEBUG_DEVRES=y
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not setCONFIG_HMEM_REPORTING=y
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not setCONFIG_GENERIC_CPU_DEVICES=yCONFIG_GENERIC_CPU_AUTOPROBE=yCONFIG_GENERIC_CPU_VULNERABILITIES=yCONFIG_SOC_BUS=yCONFIG_REGMAP=yCONFIG_REGMAP_I2C=yCONFIG_REGMAP_SLIMBUS=yCONFIG_REGMAP_SPI=yCONFIG_REGMAP_SPMI=yCONFIG_REGMAP_MMIO=yCONFIG_REGMAP_IRQ=yCONFIG_REGMAP_SOUNDWIRE=yCONFIG_DMA_SHARED_BUFFER=y
# CONFIG_DMA_FENCE_TRACE is not setCONFIG_GENERIC_ARCH_TOPOLOGY=yCONFIG_GENERIC_ARCH_NUMA=y
# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set
# end of Generic Driver Options
#
# Bus devices
#CONFIG_ARM_CCI=yCONFIG_ARM_CCI400_COMMON=yCONFIG_BRCMSTB_GISB_ARB=y
# CONFIG_MOXTET is not setCONFIG_HISILICON_LPC=y
# CONFIG_IMX_WEIM is not setCONFIG_QCOM_EBI2=y
# CONFIG_QCOM_SSC_BLOCK_BUS is not setCONFIG_STM32_FIREWALL=yCONFIG_SUN50I_DE2_BUS=yCONFIG_SUNXI_RSB=yCONFIG_TEGRA_ACONNECT=y
# CONFIG_TEGRA_GMI is not setCONFIG_TI_SYSC=yCONFIG_UNIPHIER_SYSTEM_BUS=yCONFIG_VEXPRESS_CONFIG=yCONFIG_FSL_MC_BUS=y
# CONFIG_FSL_MC_UAPI_SUPPORT is not setCONFIG_MHI_BUS=y
# CONFIG_MHI_BUS_DEBUG is not setCONFIG_MHI_BUS_PCI_GENERIC=y
# CONFIG_MHI_BUS_EP is not set
# end of Bus devices
#
# Cache Drivers
#
# end of Cache Drivers
CONFIG_CONNECTOR=y
# CONFIG_PROC_EVENTS is not set
#
# Firmware Drivers
#
#
# ARM System Control and Management Interface Protocol #CONFIG_ARM_SCMI_PROTOCOL=y
# CONFIG_ARM_SCMI_RAW_MODE_SUPPORT is not set # CONFIG_ARM_SCMI_DEBUG_COUNTERS is not set CONFIG_ARM_SCMI_QUIRKS=y
#
# SCMI Transport Drivers
#CONFIG_ARM_SCMI_HAVE_TRANSPORT=y CONFIG_ARM_SCMI_HAVE_SHMEM=y CONFIG_ARM_SCMI_HAVE_MSG=y CONFIG_ARM_SCMI_TRANSPORT_MAILBOX=y CONFIG_ARM_SCMI_TRANSPORT_SMC=y
# CONFIG_ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE is not set CONFIG_ARM_SCMI_TRANSPORT_OPTEE=y
# CONFIG_ARM_SCMI_TRANSPORT_VIRTIO is not set
# end of SCMI Transport Drivers
#
# ARM SCMI NXP i.MX Vendor Protocols
#CONFIG_IMX_SCMI_BBM_EXT=yCONFIG_IMX_SCMI_CPU_EXT=yCONFIG_IMX_SCMI_LMM_EXT=yCONFIG_IMX_SCMI_MISC_EXT=y
# end of ARM SCMI NXP i.MX Vendor Protocols
# CONFIG_ARM_SCMI_POWER_CONTROL is not set
# end of ARM System Control and Management Interface Protocol
CONFIG_ARM_SCPI_PROTOCOL=yCONFIG_ARM_SDE_INTERFACE=y
# CONFIG_FIRMWARE_MEMMAP is not setCONFIG_DMIID=y
# CONFIG_DMI_SYSFS is not set
# CONFIG_ISCSI_IBFT is not setCONFIG_RASPBERRYPI_FIRMWARE=y
# CONFIG_FW_CFG_SYSFS is not setCONFIG_INTEL_STRATIX10_SERVICE=yCONFIG_INTEL_STRATIX10_RSU=yCONFIG_MTK_ADSP_IPC=yCONFIG_SYSFB=y
# CONFIG_SYSFB_SIMPLEFB is not setCONFIG_TI_SCI_PROTOCOL=y
# CONFIG_TURRIS_MOX_RWTM is not set
# CONFIG_ARM_FFA_TRANSPORT is not setCONFIG_TEE_BNXT_FW=yCONFIG_GOOGLE_FIRMWARE=yCONFIG_GOOGLE_CBMEM=yCONFIG_GOOGLE_COREBOOT_TABLE=yCONFIG_GOOGLE_MEMCONSOLE=y
# CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT is not setCONFIG_GOOGLE_MEMCONSOLE_COREBOOT=yCONFIG_GOOGLE_VPD=y
#
# EFI (Extensible Firmware Interface) Support #CONFIG_EFI_ESRT=yCONFIG_EFI_VARS_PSTORE=y
# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set CONFIG_EFI_SOFT_RESERVE=y CONFIG_EFI_PARAMS_FROM_FDT=y CONFIG_EFI_RUNTIME_WRAPPERS=y CONFIG_EFI_GENERIC_STUB=y
# CONFIG_EFI_ZBOOT is not set CONFIG_EFI_ARMSTUB_DTB_LOADER=y
# CONFIG_EFI_BOOTLOADER_CONTROL is not set CONFIG_EFI_CAPSULE_LOADER=y
# CONFIG_EFI_TEST is not set
# CONFIG_RESET_ATTACK_MITIGATION 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
# end of EFI (Extensible Firmware Interface) Support
CONFIG_UEFI_CPER=yCONFIG_UEFI_CPER_ARM=y
# CONFIG_TEE_STMM_EFI is not set
# CONFIG_IMX_DSP is not setCONFIG_IMX_SCU=yCONFIG_IMX_SCMI_CPU_DRV=yCONFIG_IMX_SCMI_LMM_DRV=yCONFIG_IMX_SCMI_MISC_DRV=yCONFIG_MESON_SM=yCONFIG_ARM_PSCI_FW=y
# CONFIG_ARM_PSCI_CHECKER is not set
#
# Qualcomm firmware drivers
#CONFIG_QCOM_SCM=yCONFIG_QCOM_TZMEM=y
# CONFIG_QCOM_TZMEM_MODE_GENERIC is not setCONFIG_QCOM_TZMEM_MODE_SHMBRIDGE=yCONFIG_QCOM_QSEECOM=yCONFIG_QCOM_QSEECOM_UEFISECAPP=y
# end of Qualcomm firmware drivers
# CONFIG_EXYNOS_ACPM_PROTOCOL is not setCONFIG_HAVE_ARM_SMCCC=yCONFIG_HAVE_ARM_SMCCC_DISCOVERY=yCONFIG_ARM_SMCCC_SOC_ID=y
#
# Tegra firmware driver
#CONFIG_TEGRA_IVC=yCONFIG_TEGRA_BPMP=y
# end of Tegra firmware driver
#
# Zynq MPSoC Firmware Drivers
#CONFIG_ZYNQMP_FIRMWARE=y
# CONFIG_ZYNQMP_FIRMWARE_DEBUG is not set
# end of Zynq MPSoC Firmware Drivers # end of Firmware Drivers
# CONFIG_FWCTL is not setCONFIG_GNSS=yCONFIG_GNSS_SERIAL=yCONFIG_GNSS_MTK_SERIAL=y
# CONFIG_GNSS_SIRF_SERIAL is not set
# CONFIG_GNSS_UBX_SERIAL is not setCONFIG_GNSS_USB=yCONFIG_MTD=y
# CONFIG_MTD_TESTS is not set
#
# Partition parsers
#
# CONFIG_MTD_BRCM_U_BOOT is not set
# CONFIG_MTD_CMDLINE_PARTS is not setCONFIG_MTD_OF_PARTS=yCONFIG_MTD_OF_PARTS_BCM4908=y
# CONFIG_MTD_OF_PARTS_LINKSYS_NS is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_PARSER_TRX is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_QCOMSMEM_PARTS is not set
# end of Partition parsers
#
# User Modules And Translation Layers
#CONFIG_MTD_BLKDEVS=yCONFIG_MTD_BLOCK=y
#
# Note that in some cases UBI block is preferred. See MTD_UBI_BLOCK. #CONFIG_FTL=y
# CONFIG_NFTL is not set
# CONFIG_INFTL is not set
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set
# CONFIG_SM_FTL is not set
# CONFIG_MTD_OOPS is not set
# CONFIG_MTD_SWAP is not set
# CONFIG_MTD_PARTITIONED_MASTER is not set
#
# RAM/ROM/Flash chip drivers
#CONFIG_MTD_CFI=y
# CONFIG_MTD_JEDECPROBE is not setCONFIG_MTD_GEN_PROBE=yCONFIG_MTD_CFI_ADV_OPTIONS=yCONFIG_MTD_CFI_NOSWAP=y
# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_GEOMETRY is not setCONFIG_MTD_MAP_BANK_WIDTH_1=yCONFIG_MTD_MAP_BANK_WIDTH_2=yCONFIG_MTD_MAP_BANK_WIDTH_4=yCONFIG_MTD_CFI_I1=yCONFIG_MTD_CFI_I2=y
# CONFIG_MTD_OTP is not setCONFIG_MTD_CFI_INTELEXT=yCONFIG_MTD_CFI_AMDSTD=yCONFIG_MTD_CFI_STAA=yCONFIG_MTD_CFI_UTIL=y
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# end of RAM/ROM/Flash chip drivers
#
# Mapping drivers for chip access
#CONFIG_MTD_COMPLEX_MAPPINGS=yCONFIG_MTD_PHYSMAP=y
# CONFIG_MTD_PHYSMAP_COMPAT is not setCONFIG_MTD_PHYSMAP_OF=y
# CONFIG_MTD_PHYSMAP_VERSATILE is not set
# CONFIG_MTD_PHYSMAP_GEMINI is not set
# CONFIG_MTD_PHYSMAP_GPIO_ADDR is not set
# CONFIG_MTD_PCI is not set
# CONFIG_MTD_PCMCIA is not set
# CONFIG_MTD_PLATRAM is not set
# end of Mapping drivers for chip access
#
# Self-contained MTD device drivers
#
# CONFIG_MTD_PMC551 is not setCONFIG_MTD_DATAFLASH=y
# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
# CONFIG_MTD_DATAFLASH_OTP is not set
# CONFIG_MTD_MCHP23K256 is not set
# CONFIG_MTD_MCHP48L640 is not setCONFIG_MTD_SST25L=yCONFIG_MTD_SLRAM=yCONFIG_MTD_PHRAM=yCONFIG_MTD_MTDRAM=yCONFIG_MTDRAM_TOTAL_SIZE=128CONFIG_MTDRAM_ERASE_SIZE=4CONFIG_MTD_BLOCK2MTD=y
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOCG3 is not set
# end of Self-contained MTD device drivers
#
# NAND
#CONFIG_MTD_NAND_CORE=y
# CONFIG_MTD_ONENAND is not setCONFIG_MTD_RAW_NAND=y
#
# Raw/parallel NAND flash controllers
#CONFIG_MTD_NAND_DENALI=y
# CONFIG_MTD_NAND_DENALI_PCI is not setCONFIG_MTD_NAND_DENALI_DT=y
# CONFIG_MTD_NAND_CAFE is not setCONFIG_MTD_NAND_MARVELL=yCONFIG_MTD_NAND_BRCMNAND=y
# CONFIG_MTD_NAND_BRCMNAND_BCM63XX is not setCONFIG_MTD_NAND_BRCMNAND_BCMBCA=yCONFIG_MTD_NAND_BRCMNAND_BRCMSTB=yCONFIG_MTD_NAND_BRCMNAND_IPROC=yCONFIG_MTD_NAND_FSL_IFC=y
# CONFIG_MTD_NAND_MXC is not set
# CONFIG_MTD_NAND_SUNXI is not set
# CONFIG_MTD_NAND_HISI504 is not setCONFIG_MTD_NAND_QCOM=y
# CONFIG_MTD_NAND_MXIC is not set
# CONFIG_MTD_NAND_TEGRA is not set
# CONFIG_MTD_NAND_STM32_FMC2 is not set
# CONFIG_MTD_NAND_MESON is not set
# CONFIG_MTD_NAND_GPIO is not set
# CONFIG_MTD_NAND_PLATFORM is not set
# CONFIG_MTD_NAND_CADENCE is not set
# CONFIG_MTD_NAND_ARASAN is not set
# CONFIG_MTD_NAND_INTEL_LGM is not set
# CONFIG_MTD_NAND_ROCKCHIP is not set
# CONFIG_MTD_NAND_RENESAS is not set
# CONFIG_MTD_NAND_NUVOTON_MA35 is not set
#
# Misc
#
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_RICOH is not set
# CONFIG_MTD_NAND_DISKONCHIP is not setCONFIG_MTD_SPI_NAND=y
#
# ECC engine support
#CONFIG_MTD_NAND_ECC=yCONFIG_MTD_NAND_ECC_SW_HAMMING=y
# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set
# CONFIG_MTD_NAND_ECC_SW_BCH is not set
# CONFIG_MTD_NAND_ECC_MXIC is not set
# CONFIG_MTD_NAND_ECC_MEDIATEK is not set
# end of ECC engine support # end of NAND
#
# LPDDR & LPDDR2 PCM memory drivers
#
# CONFIG_MTD_LPDDR is not set
# end of LPDDR & LPDDR2 PCM memory drivers
CONFIG_MTD_SPI_NOR=yCONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not setCONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set
# CONFIG_SPI_HISI_SFC is not setCONFIG_MTD_UBI=yCONFIG_MTD_UBI_WL_THRESHOLD=4096CONFIG_MTD_UBI_BEB_LIMIT=20
# CONFIG_MTD_UBI_FASTMAP is not set
# CONFIG_MTD_UBI_GLUEBI is not set
# CONFIG_MTD_UBI_BLOCK is not set
# CONFIG_MTD_UBI_FAULT_INJECTION is not set
# CONFIG_MTD_UBI_NVMEM is not setCONFIG_MTD_HYPERBUS=yCONFIG_HBMC_AM654=yCONFIG_DTC=yCONFIG_OF=y
# CONFIG_OF_UNITTEST is not setCONFIG_OF_FLATTREE=yCONFIG_OF_EARLY_FLATTREE=yCONFIG_OF_KOBJ=yCONFIG_OF_DYNAMIC=yCONFIG_OF_ADDRESS=yCONFIG_OF_IRQ=yCONFIG_OF_RESERVED_MEM=y
# CONFIG_OF_OVERLAY is not setCONFIG_OF_NUMA=yCONFIG_PARPORT=y
# CONFIG_PARPORT_PC is not set
# CONFIG_PARPORT_1284 is not setCONFIG_PARPORT_NOT_PC=yCONFIG_PNP=yCONFIG_PNP_DEBUG_MESSAGES=y
#
# Protocols
#CONFIG_PNPACPI=yCONFIG_BLK_DEV=yCONFIG_BLK_DEV_NULL_BLK=yCONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=yCONFIG_CDROM=y
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not setCONFIG_ZRAM=y
# CONFIG_ZRAM_BACKEND_LZ4 is not set
# CONFIG_ZRAM_BACKEND_LZ4HC is not set
# CONFIG_ZRAM_BACKEND_ZSTD is not set
# CONFIG_ZRAM_BACKEND_DEFLATE is not set
# CONFIG_ZRAM_BACKEND_842 is not setCONFIG_ZRAM_BACKEND_FORCE_LZO=yCONFIG_ZRAM_BACKEND_LZO=y
# CONFIG_ZRAM_DEF_COMP_LZORLE is not setCONFIG_ZRAM_DEF_COMP_LZO=yCONFIG_ZRAM_DEF_COMP="lzo"
# CONFIG_ZRAM_WRITEBACK is not set
# CONFIG_ZRAM_TRACK_ENTRY_ACTIME is not set
# CONFIG_ZRAM_MEMORY_TRACKING is not set
# CONFIG_ZRAM_MULTI_COMP is not setCONFIG_BLK_DEV_LOOP=yCONFIG_BLK_DEV_LOOP_MIN_COUNT=16
# CONFIG_BLK_DEV_DRBD is not setCONFIG_BLK_DEV_NBD=yCONFIG_BLK_DEV_RAM=yCONFIG_BLK_DEV_RAM_COUNT=16CONFIG_BLK_DEV_RAM_SIZE=4096
# CONFIG_CDROM_PKTCDVD is not setCONFIG_ATA_OVER_ETH=yCONFIG_VIRTIO_BLK=y
# CONFIG_BLK_DEV_RBD is not set
# CONFIG_BLK_DEV_UBLK is not setCONFIG_BLK_DEV_RNBD=yCONFIG_BLK_DEV_RNBD_CLIENT=y
# CONFIG_BLK_DEV_ZONED_LOOP is not set
#
# NVME Support
#CONFIG_NVME_CORE=yCONFIG_BLK_DEV_NVME=yCONFIG_NVME_MULTIPATH=y
# CONFIG_NVME_VERBOSE_ERRORS is not set
# CONFIG_NVME_HWMON is not setCONFIG_NVME_FABRICS=yCONFIG_NVME_RDMA=yCONFIG_NVME_FC=yCONFIG_NVME_TCP=y
# CONFIG_NVME_TCP_TLS is not set
# CONFIG_NVME_HOST_AUTH is not set
# CONFIG_NVME_APPLE is not setCONFIG_NVME_TARGET=y
# CONFIG_NVME_TARGET_DEBUGFS is not set
# CONFIG_NVME_TARGET_PASSTHRU is not setCONFIG_NVME_TARGET_LOOP=yCONFIG_NVME_TARGET_RDMA=yCONFIG_NVME_TARGET_FC=yCONFIG_NVME_TARGET_FCLOOP=yCONFIG_NVME_TARGET_TCP=y
# CONFIG_NVME_TARGET_TCP_TLS is not set
# CONFIG_NVME_TARGET_AUTH is not set
# CONFIG_NVME_TARGET_PCI_EPF is not set
# end of NVME Support
#
# Misc devices
#
# CONFIG_AD525X_DPOT is not set
# CONFIG_DUMMY_IRQ is not set
# CONFIG_PHANTOM is not set
# CONFIG_RPMB is not set
# CONFIG_TI_FPC202 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HI6421V600_IRQ is not set
# CONFIG_HP_ILO is not setCONFIG_QCOM_COINCELL=yCONFIG_QCOM_FASTRPC=y
# 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_SENSORS_APDS990X is not set
# CONFIG_HMC6352 is not set
# CONFIG_DS1682 is not set
# CONFIG_LATTICE_ECP3_CONFIG is not setCONFIG_SRAM=y
# CONFIG_DW_XDATA_PCIE is not setCONFIG_PCI_ENDPOINT_TEST=y
# CONFIG_XILINX_SDFEC is not setCONFIG_MISC_RTSX=y
# CONFIG_HISI_HIKEY_USB is not set
# CONFIG_OPEN_DICE is not set
# CONFIG_NTSYNC is not set
# CONFIG_VCPU_STALL_DETECTOR is not setCONFIG_TPS6594_ESM=yCONFIG_TPS6594_PFSM=y
# CONFIG_NSM is not set
# CONFIG_MARVELL_CN10K_DPI is not set
# CONFIG_C2PORT is not set
#
# EEPROM support
#CONFIG_EEPROM_AT24=yCONFIG_EEPROM_AT25=y
# CONFIG_EEPROM_MAX6875 is not setCONFIG_EEPROM_93CX6=y
# CONFIG_EEPROM_93XX46 is not set
# CONFIG_EEPROM_IDT_89HPESX is not set
# CONFIG_EEPROM_EE1004 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_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 setCONFIG_MISC_RTSX_USB=yCONFIG_UACCE=y
# CONFIG_PVPANIC is not set
# CONFIG_GP_PCI1XXXX is not set
# CONFIG_KEBA_CP500 is not set
# CONFIG_AMD_SBRMI_I2C is not set
# end of Misc devices
#
# SCSI device support
#CONFIG_SCSI_MOD=yCONFIG_RAID_ATTRS=yCONFIG_SCSI_COMMON=yCONFIG_SCSI=yCONFIG_SCSI_DMA=yCONFIG_SCSI_NETLINK=y
# CONFIG_SCSI_PROC_FS is not set
#
# SCSI support type (disk, tape, CD-ROM)
#CONFIG_BLK_DEV_SD=yCONFIG_CHR_DEV_ST=yCONFIG_BLK_DEV_SR=yCONFIG_CHR_DEV_SG=yCONFIG_BLK_DEV_BSG=y
# CONFIG_CHR_DEV_SCH is not setCONFIG_SCSI_CONSTANTS=yCONFIG_SCSI_LOGGING=yCONFIG_SCSI_SCAN_ASYNC=y
#
# SCSI Transports
#CONFIG_SCSI_SPI_ATTRS=yCONFIG_SCSI_FC_ATTRS=yCONFIG_SCSI_ISCSI_ATTRS=yCONFIG_SCSI_SAS_ATTRS=yCONFIG_SCSI_SAS_LIBSAS=yCONFIG_SCSI_SAS_ATA=yCONFIG_SCSI_SAS_HOST_SMP=yCONFIG_SCSI_SRP_ATTRS=y
# 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=y
# 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_HISI_SAS=y CONFIG_SCSI_HISI_SAS_PCI=y
# CONFIG_SCSI_HISI_SAS_DEBUGFS_DEFAULT_ENABLE 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=yCONFIG_SCSI_MPT3SAS=y CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_MPT3SAS_MAX_SGE=128
# 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_LIBFC is not set
# CONFIG_SCSI_SNIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_FDOMAIN_PCI 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_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_EFCT 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_BFA_FC is not set CONFIG_SCSI_VIRTIO=y
# CONFIG_SCSI_CHELSIO_FCOE is not set
# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
# CONFIG_SCSI_DH is not set
# end of SCSI device support
CONFIG_ATA=yCONFIG_SATA_HOST=yCONFIG_PATA_TIMINGS=yCONFIG_ATA_VERBOSE_ERROR=yCONFIG_ATA_FORCE=yCONFIG_ATA_ACPI=y
# CONFIG_SATA_ZPODD is not setCONFIG_SATA_PMP=y
#
# Controllers with non-SFF native interface
#CONFIG_SATA_AHCI=yCONFIG_SATA_MOBILE_LPM_POLICY=3CONFIG_SATA_AHCI_PLATFORM=yCONFIG_AHCI_BRCM=yCONFIG_AHCI_DWC=y
# CONFIG_AHCI_IMX is not setCONFIG_AHCI_CEVA=y
# CONFIG_AHCI_MTK is not setCONFIG_AHCI_MVEBU=y
# CONFIG_AHCI_SUNXI is not set
# CONFIG_AHCI_TEGRA is not setCONFIG_AHCI_XGENE=yCONFIG_AHCI_QORIQ=y
# CONFIG_SATA_AHCI_SEATTLE is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_SATA_ACARD_AHCI is not setCONFIG_SATA_SIL24=yCONFIG_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 setCONFIG_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 setCONFIG_SATA_RCAR=y
# 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 setCONFIG_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_IMX 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 setCONFIG_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 setCONFIG_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 setCONFIG_PATA_PLATFORM=yCONFIG_PATA_OF_PLATFORM=y
# CONFIG_PATA_RZ1000 is not set
#
# Generic fallback / legacy drivers
#
# CONFIG_PATA_ACPI is not set CONFIG_ATA_GENERIC=y
# CONFIG_PATA_LEGACY is not set CONFIG_MD=yCONFIG_BLK_DEV_MD=y
# CONFIG_MD_AUTODETECT is not set CONFIG_MD_BITMAP_FILE=y
# CONFIG_MD_LINEAR is not set CONFIG_MD_RAID0=yCONFIG_MD_RAID1=yCONFIG_MD_RAID10=yCONFIG_MD_RAID456=y
# CONFIG_MD_CLUSTER is not set CONFIG_BCACHE=y
# CONFIG_BCACHE_DEBUG is not set
# CONFIG_BCACHE_ASYNC_REGISTRATION is not set CONFIG_BLK_DEV_DM_BUILTIN=y CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=y
# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set CONFIG_DM_BIO_PRISON=y CONFIG_DM_PERSISTENT_DATA=y
# CONFIG_DM_UNSTRIPED is not set CONFIG_DM_CRYPT=yCONFIG_DM_SNAPSHOT=y CONFIG_DM_THIN_PROVISIONING=y CONFIG_DM_CACHE=yCONFIG_DM_CACHE_SMQ=y CONFIG_DM_WRITECACHE=y
# CONFIG_DM_EBS is not set
# CONFIG_DM_ERA is not set CONFIG_DM_CLONE=yCONFIG_DM_MIRROR=y
# CONFIG_DM_LOG_USERSPACE is not set CONFIG_DM_RAID=yCONFIG_DM_ZERO=yCONFIG_DM_MULTIPATH=y CONFIG_DM_MULTIPATH_QL=y CONFIG_DM_MULTIPATH_ST=y
# CONFIG_DM_MULTIPATH_HST is not set
# CONFIG_DM_MULTIPATH_IOA is not set
# CONFIG_DM_DELAY is not set
# CONFIG_DM_DUST is not set
# CONFIG_DM_INIT is not set CONFIG_DM_UEVENT=yCONFIG_DM_FLAKEY=yCONFIG_DM_VERITY=y
# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set CONFIG_DM_VERITY_FEC=y
# CONFIG_DM_SWITCH is not set
# CONFIG_DM_LOG_WRITES is not set CONFIG_DM_INTEGRITY=yCONFIG_DM_ZONED=yCONFIG_DM_AUDIT=y
# CONFIG_DM_VDO is not set CONFIG_TARGET_CORE=y
# CONFIG_TCM_IBLOCK is not set
# CONFIG_TCM_FILEIO is not set
# CONFIG_TCM_PSCSI is not set
# CONFIG_TCM_USER2 is not set
# CONFIG_LOOPBACK_TARGET is not set
# CONFIG_ISCSI_TARGET is not set
# CONFIG_SBP_TARGET is not set
# CONFIG_REMOTE_TARGET is not set
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#CONFIG_FIREWIRE=yCONFIG_FIREWIRE_OHCI=yCONFIG_FIREWIRE_SBP2=yCONFIG_FIREWIRE_NET=y
# CONFIG_FIREWIRE_NOSY is not set
# end of IEEE 1394 (FireWire) support
CONFIG_NETDEVICES=yCONFIG_MII=yCONFIG_NET_CORE=yCONFIG_BONDING=yCONFIG_DUMMY=yCONFIG_WIREGUARD=y
# CONFIG_WIREGUARD_DEBUG is not set
# CONFIG_OVPN is not setCONFIG_EQUALIZER=yCONFIG_NET_FC=yCONFIG_IFB=yCONFIG_NET_TEAM=yCONFIG_NET_TEAM_MODE_BROADCAST=yCONFIG_NET_TEAM_MODE_ROUNDROBIN=yCONFIG_NET_TEAM_MODE_RANDOM=yCONFIG_NET_TEAM_MODE_ACTIVEBACKUP=yCONFIG_NET_TEAM_MODE_LOADBALANCE=yCONFIG_MACVLAN=yCONFIG_MACVTAP=yCONFIG_IPVLAN_L3S=yCONFIG_IPVLAN=yCONFIG_IPVTAP=yCONFIG_VXLAN=yCONFIG_GENEVE=yCONFIG_BAREUDP=yCONFIG_GTP=y
# CONFIG_PFCP is not set
# CONFIG_AMT is not setCONFIG_MACSEC=yCONFIG_NETCONSOLE=y
# CONFIG_NETCONSOLE_DYNAMIC is not set
# CONFIG_NETCONSOLE_EXTENDED_LOG is not setCONFIG_NETPOLL=yCONFIG_NET_POLL_CONTROLLER=yCONFIG_TUN=yCONFIG_TAP=yCONFIG_TUN_VNET_CROSS_LE=yCONFIG_VETH=yCONFIG_VIRTIO_NET=yCONFIG_NLMON=y
# CONFIG_NETKIT is not setCONFIG_NET_VRF=yCONFIG_VSOCKMON=yCONFIG_MHI_NET=y
# CONFIG_ARCNET is not setCONFIG_ATM_DRIVERS=y
# CONFIG_ATM_DUMMY is not setCONFIG_ATM_TCP=y
# CONFIG_ATM_LANAI is not set
# CONFIG_ATM_ENI is not set
# CONFIG_ATM_NICSTAR is not set
# CONFIG_ATM_IDT77252 is not set
# CONFIG_ATM_IA is not set
# CONFIG_ATM_FORE200E is not set
# CONFIG_ATM_HE is not set
# CONFIG_ATM_SOLOS is not setCONFIG_CAIF_DRIVERS=yCONFIG_CAIF_TTY=yCONFIG_CAIF_VIRTIO=y
#
# Distributed Switch Architecture drivers
#CONFIG_B53=y
# CONFIG_B53_SPI_DRIVER is not set
# CONFIG_B53_MDIO_DRIVER is not set
# CONFIG_B53_MMAP_DRIVER is not set CONFIG_B53_SRAB_DRIVER=y
# CONFIG_B53_SERDES is not set CONFIG_NET_DSA_BCM_SF2=y
# CONFIG_NET_DSA_LOOP is not set
# CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK is not set # CONFIG_NET_DSA_LANTIQ_GSWIP is not set
# CONFIG_NET_DSA_MT7530 is not set
# CONFIG_NET_DSA_MV88E6060 is not set
# CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON is not set # CONFIG_NET_DSA_MV88E6XXX is not set
# CONFIG_NET_DSA_AR9331 is not set
# CONFIG_NET_DSA_QCA8K is not set
# CONFIG_NET_DSA_SJA1105 is not set
# CONFIG_NET_DSA_XRS700X_I2C is not set
# CONFIG_NET_DSA_XRS700X_MDIO is not set
# CONFIG_NET_DSA_REALTEK is not set
# CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set # CONFIG_NET_DSA_SMSC_LAN9303_MDIO is not set # CONFIG_NET_DSA_VITESSE_VSC73XX_SPI is not set # CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM is not set
# end of Distributed Switch Architecture drivers
CONFIG_ETHERNET=y
# CONFIG_NET_VENDOR_3COM is not setCONFIG_NET_VENDOR_ACTIONS=y
# CONFIG_OWL_EMAC is not set
# CONFIG_NET_VENDOR_ADAPTEC is not set
# CONFIG_NET_VENDOR_AGERE is not set
# CONFIG_NET_VENDOR_AIROHA is not set
# CONFIG_NET_VENDOR_ALACRITECH is not setCONFIG_NET_VENDOR_ALLWINNER=y
# CONFIG_SUN4I_EMAC is not setCONFIG_NET_VENDOR_ALTEON=y
# CONFIG_ACENIC is not set
# CONFIG_ALTERA_TSE is not setCONFIG_NET_VENDOR_AMAZON=yCONFIG_ENA_ETHERNET=y
# CONFIG_NET_VENDOR_AMD is not setCONFIG_NET_XGENE=y
# CONFIG_NET_XGENE_V2 is not set
# CONFIG_NET_VENDOR_AQUANTIA is not set
# CONFIG_NET_VENDOR_ARC is not setCONFIG_NET_VENDOR_ASIX=y
# CONFIG_SPI_AX88796C is not set
# CONFIG_NET_VENDOR_ATHEROS is not set
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_CADENCE is not set
# CONFIG_NET_VENDOR_CAVIUM is not set
# CONFIG_NET_VENDOR_CHELSIO is not setCONFIG_NET_VENDOR_CISCO=y
# CONFIG_ENIC is not set
# CONFIG_NET_VENDOR_CORTINA is not setCONFIG_NET_VENDOR_DAVICOM=y
# CONFIG_DM9051 is not set
# CONFIG_DNET is not set
# CONFIG_NET_VENDOR_DEC is not set
# CONFIG_NET_VENDOR_DLINK is not set
# CONFIG_NET_VENDOR_EMULEX is not setCONFIG_NET_VENDOR_ENGLEDER=y
# CONFIG_TSNEP is not set
# CONFIG_NET_VENDOR_EZCHIP is not setCONFIG_NET_VENDOR_FREESCALE=yCONFIG_FEC=yCONFIG_FSL_FMAN=yCONFIG_DPAA_ERRATUM_A050385=y
# CONFIG_FSL_PQ_MDIO is not setCONFIG_FSL_XGMAC_MDIO=y
# CONFIG_GIANFAR is not setCONFIG_FSL_DPAA_ETH=yCONFIG_FSL_DPAA2_ETH=y
# CONFIG_FSL_DPAA2_ETH_DCB is not setCONFIG_FSL_DPAA2_PTP_CLOCK=y
# CONFIG_FSL_DPAA2_SWITCH is not setCONFIG_FSL_ENETC_CORE=yCONFIG_NXP_ENETC_PF_COMMON=yCONFIG_FSL_ENETC=y
# CONFIG_NXP_ENETC4 is not setCONFIG_FSL_ENETC_VF=yCONFIG_FSL_ENETC_IERB=yCONFIG_FSL_ENETC_MDIO=yCONFIG_FSL_ENETC_PTP_CLOCK=yCONFIG_FSL_ENETC_QOS=y
# CONFIG_NXP_NETC_BLK_CTRL is not set
# CONFIG_NET_VENDOR_FUJITSU is not setCONFIG_NET_VENDOR_FUNGIBLE=y
# CONFIG_FUN_ETH is not setCONFIG_NET_VENDOR_GOOGLE=yCONFIG_GVE=yCONFIG_NET_VENDOR_HISILICON=yCONFIG_HIX5HD2_GMAC=y
# CONFIG_HISI_FEMAC is not set
# CONFIG_HIP04_ETH is not setCONFIG_HNS_MDIO=yCONFIG_HNS=yCONFIG_HNS_DSAF=yCONFIG_HNS_ENET=yCONFIG_HNS3=yCONFIG_HNS3_HCLGE=y
# CONFIG_HNS3_DCB is not set
# CONFIG_HNS3_HCLGEVF is not setCONFIG_HNS3_ENET=y
# CONFIG_HIBMCGE is not set
# CONFIG_NET_VENDOR_HUAWEI is not setCONFIG_NET_VENDOR_I825XX=yCONFIG_NET_VENDOR_INTEL=yCONFIG_E100=yCONFIG_E1000=yCONFIG_E1000E=yCONFIG_IGB=yCONFIG_IGB_HWMON=yCONFIG_IGBVF=y
# 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 setCONFIG_NET_VENDOR_ADI=y
# CONFIG_ADIN1110 is not setCONFIG_NET_VENDOR_LITEX=y
# CONFIG_LITEX_LITEETH is not set
# CONFIG_NET_VENDOR_MARVELL is not setCONFIG_NET_VENDOR_MEDIATEK=y
# CONFIG_NET_MEDIATEK_SOC is not setCONFIG_NET_MEDIATEK_STAR_EMAC=yCONFIG_NET_VENDOR_MELLANOX=yCONFIG_MLX4_EN=y
# CONFIG_MLX4_EN_DCB is not setCONFIG_MLX4_CORE=yCONFIG_MLX4_DEBUG=yCONFIG_MLX4_CORE_GEN2=yCONFIG_MLX5_CORE=y
# CONFIG_MLX5_FPGA is not setCONFIG_MLX5_CORE_EN=yCONFIG_MLX5_EN_ARFS=yCONFIG_MLX5_EN_RXNFC=yCONFIG_MLX5_MPFS=yCONFIG_MLX5_ESWITCH=yCONFIG_MLX5_BRIDGE=y
# CONFIG_MLX5_CLS_ACT is not set
# CONFIG_MLX5_CORE_EN_DCB is not set
# CONFIG_MLX5_CORE_IPOIB is not set
# CONFIG_MLX5_MACSEC is not set
# CONFIG_MLX5_EN_IPSEC is not set
# CONFIG_MLX5_EN_TLS is not setCONFIG_MLX5_SW_STEERING=yCONFIG_MLX5_HW_STEERING=y
# CONFIG_MLX5_SF is not set
# CONFIG_MLX5_DPLL is not set
# CONFIG_MLXSW_CORE is not set
# CONFIG_MLXFW is not set
# CONFIG_MLXBF_GIGE is not setCONFIG_NET_VENDOR_META=y
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_MICROSEMI is not setCONFIG_NET_VENDOR_MICROSOFT=y
# CONFIG_NET_VENDOR_MYRI is not set
# CONFIG_FEALNX is not set
# CONFIG_NET_VENDOR_NI is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_NETERION is not set
# CONFIG_NET_VENDOR_NETRONOME is not set
# CONFIG_NET_VENDOR_NVIDIA is not set
# CONFIG_NET_VENDOR_OKI is not set
# CONFIG_ETHOC is not set
# CONFIG_NET_VENDOR_PACKET_ENGINES is not set
# CONFIG_NET_VENDOR_PENSANDO is not set
# CONFIG_NET_VENDOR_QLOGIC is not set
# CONFIG_NET_VENDOR_BROCADE is not set
# CONFIG_NET_VENDOR_QUALCOMM is not set
# CONFIG_NET_VENDOR_RDC is not set
# CONFIG_NET_VENDOR_REALTEK is not set
# CONFIG_NET_VENDOR_RENESAS is not set
# CONFIG_NET_VENDOR_ROCKER is not set
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SILAN is not set
# CONFIG_NET_VENDOR_SIS is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_SUN is not set
# CONFIG_NET_VENDOR_SYNOPSYS is not set
# CONFIG_NET_VENDOR_TEHUTI is not set
# CONFIG_NET_VENDOR_TI is not setCONFIG_NET_VENDOR_VERTEXCOM=y
# CONFIG_MSE102X is not set
# CONFIG_NET_VENDOR_VIA is not setCONFIG_NET_VENDOR_WANGXUN=y
# CONFIG_NGBE is not set
# CONFIG_TXGBE is not set
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_NET_VENDOR_XILINX is not set
# CONFIG_NET_VENDOR_XIRCOM is not setCONFIG_FDDI=y
# CONFIG_DEFXX is not set
# CONFIG_SKFP is not set
# CONFIG_HIPPI is not setCONFIG_QCOM_IPA=yCONFIG_PHYLINK=yCONFIG_PHYLIB=yCONFIG_SWPHY=y
# CONFIG_LED_TRIGGER_PHY is not setCONFIG_PHYLIB_LEDS=yCONFIG_FIXED_PHY=y
# CONFIG_SFP is not set
#
# MII PHY device drivers
#
# CONFIG_AS21XXX_PHY is not set
# CONFIG_AIR_EN8811H_PHY is not set
# CONFIG_AMD_PHY is not setCONFIG_MESON_GXL_PHY=y
# CONFIG_ADIN_PHY is not set
# CONFIG_ADIN1100_PHY is not setCONFIG_AQUANTIA_PHY=yCONFIG_AX88796B_PHY=yCONFIG_BROADCOM_PHY=yCONFIG_BCM54140_PHY=yCONFIG_BCM7XXX_PHY=y
# CONFIG_BCM84881_PHY is not set
# CONFIG_BCM87XX_PHY is not set
# CONFIG_BCM_CYGNUS_PHY is not setCONFIG_BCM_NET_PHYLIB=y
# 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 setCONFIG_MARVELL_PHY=yCONFIG_MARVELL_10G_PHY=yCONFIG_MARVELL_88Q2XXX_PHY=y
# CONFIG_MARVELL_88X2222_PHY is not set
# CONFIG_MAXLINEAR_GPHY is not set
# CONFIG_MAXLINEAR_86110_PHY is not set
# CONFIG_MEDIATEK_2P5GE_PHY is not set
# CONFIG_MEDIATEK_GE_PHY is not set
# CONFIG_MEDIATEK_GE_SOC_PHY is not setCONFIG_MICREL_PHY=y
# CONFIG_MICROCHIP_T1S_PHY is not setCONFIG_MICROCHIP_PHY=y
# CONFIG_MICROCHIP_T1_PHY is not setCONFIG_MICROSEMI_PHY=y
# 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 setCONFIG_QCOM_NET_PHYLIB=yCONFIG_AT803X_PHY=y
# CONFIG_QCA83XX_PHY is not set
# CONFIG_QCA808X_PHY is not set
# CONFIG_QCA807X_PHY is not set
# CONFIG_QSEMI_PHY is not setCONFIG_REALTEK_PHY=y
# CONFIG_REALTEK_PHY_HWMON is not set
# CONFIG_RENESAS_PHY is not setCONFIG_ROCKCHIP_PHY=yCONFIG_SMSC_PHY=y
# 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 setCONFIG_DP83867_PHY=yCONFIG_DP83869_PHY=yCONFIG_DP83TD510_PHY=y
# CONFIG_DP83TG720_PHY is not setCONFIG_VITESSE_PHY=y
# CONFIG_XILINX_GMII2RGMII is not set
# CONFIG_MICREL_KS8995MA is not set
# CONFIG_PSE_CONTROLLER is not setCONFIG_CAN_DEV=yCONFIG_CAN_VCAN=yCONFIG_CAN_VXCAN=yCONFIG_CAN_NETLINK=yCONFIG_CAN_CALC_BITTIMING=yCONFIG_CAN_RX_OFFLOAD=y
# CONFIG_CAN_BXCAN is not set
# CONFIG_CAN_CAN327 is not setCONFIG_CAN_FLEXCAN=y
# CONFIG_CAN_GRCAN is not set
# CONFIG_CAN_KVASER_PCIEFD is not setCONFIG_CAN_SLCAN=y
# CONFIG_CAN_XILINXCAN is not set
# CONFIG_CAN_C_CAN is not set
# CONFIG_CAN_CC770 is not set
# CONFIG_CAN_CTUCANFD_PCI is not set
# CONFIG_CAN_CTUCANFD_PLATFORM is not set
# CONFIG_CAN_ESD_402_PCI is not setCONFIG_CAN_IFI_CANFD=yCONFIG_CAN_M_CAN=y
# CONFIG_CAN_M_CAN_PCI is not setCONFIG_CAN_M_CAN_PLATFORM=y
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
# CONFIG_CAN_PEAK_PCIEFD is not setCONFIG_CAN_RCAR=yCONFIG_CAN_RCAR_CANFD=y
# CONFIG_CAN_ROCKCHIP_CANFD is not set
# CONFIG_CAN_SJA1000 is not set
# CONFIG_CAN_SOFTING is not set
#
# CAN SPI interfaces
#
# CONFIG_CAN_HI311X is not set
# CONFIG_CAN_MCP251X is not setCONFIG_CAN_MCP251XFD=y
# CONFIG_CAN_MCP251XFD_SANITY is not set
# end of CAN SPI interfaces
#
# CAN USB interfaces
#CONFIG_CAN_8DEV_USB=yCONFIG_CAN_EMS_USB=yCONFIG_CAN_ESD_USB=yCONFIG_CAN_ETAS_ES58X=yCONFIG_CAN_F81604=yCONFIG_CAN_GS_USB=yCONFIG_CAN_KVASER_USB=yCONFIG_CAN_MCBA_USB=yCONFIG_CAN_PEAK_USB=yCONFIG_CAN_UCAN=y
# end of CAN USB interfaces
# CONFIG_CAN_DEBUG_DEVICES is not set
#
# MCTP Device Drivers
#
# CONFIG_MCTP_SERIAL is not set
# CONFIG_MCTP_TRANSPORT_I2C is not set
# CONFIG_MCTP_TRANSPORT_USB is not set
# end of MCTP Device Drivers
CONFIG_MDIO_BUS=yCONFIG_FWNODE_MDIO=yCONFIG_OF_MDIO=yCONFIG_ACPI_MDIO=y
# CONFIG_MDIO_SUN4I is not setCONFIG_MDIO_XGENE=yCONFIG_MDIO_BITBANG=yCONFIG_MDIO_BCM_IPROC=yCONFIG_MDIO_BCM_UNIMAC=yCONFIG_MDIO_CAVIUM=yCONFIG_MDIO_GPIO=y
# CONFIG_MDIO_HISI_FEMAC is not setCONFIG_MDIO_MVUSB=y
# CONFIG_MDIO_MSCC_MIIM is not set
# CONFIG_MDIO_OCTEON is not set
# CONFIG_MDIO_IPQ4019 is not set
# CONFIG_MDIO_IPQ8064 is not setCONFIG_MDIO_THUNDER=y
#
# MDIO Multiplexers
#CONFIG_MDIO_BUS_MUX=yCONFIG_MDIO_BUS_MUX_MESON_G12A=yCONFIG_MDIO_BUS_MUX_MESON_GXL=yCONFIG_MDIO_BUS_MUX_BCM_IPROC=y
# CONFIG_MDIO_BUS_MUX_GPIO is not setCONFIG_MDIO_BUS_MUX_MULTIPLEXER=yCONFIG_MDIO_BUS_MUX_MMIOREG=y
#
# PCS device drivers
#CONFIG_PCS_XPCS=yCONFIG_PCS_LYNX=y
# end of PCS device drivers
# CONFIG_PLIP is not setCONFIG_PPP=yCONFIG_PPP_BSDCOMP=yCONFIG_PPP_DEFLATE=yCONFIG_PPP_FILTER=yCONFIG_PPP_MPPE=yCONFIG_PPP_MULTILINK=yCONFIG_PPPOATM=yCONFIG_PPPOE=yCONFIG_PPPOE_HASH_BITS_1=y
# CONFIG_PPPOE_HASH_BITS_2 is not set
# CONFIG_PPPOE_HASH_BITS_4 is not set
# CONFIG_PPPOE_HASH_BITS_8 is not setCONFIG_PPPOE_HASH_BITS=1CONFIG_PPTP=yCONFIG_PPPOL2TP=yCONFIG_PPP_ASYNC=yCONFIG_PPP_SYNC_TTY=yCONFIG_SLIP=yCONFIG_SLHC=yCONFIG_SLIP_COMPRESSED=yCONFIG_SLIP_SMART=yCONFIG_SLIP_MODE_SLIP6=yCONFIG_USB_NET_DRIVERS=yCONFIG_USB_CATC=yCONFIG_USB_KAWETH=yCONFIG_USB_PEGASUS=yCONFIG_USB_RTL8150=yCONFIG_USB_RTL8152=yCONFIG_USB_LAN78XX=yCONFIG_USB_USBNET=yCONFIG_USB_NET_AX8817X=yCONFIG_USB_NET_AX88179_178A=yCONFIG_USB_NET_CDCETHER=yCONFIG_USB_NET_CDC_EEM=yCONFIG_USB_NET_CDC_NCM=yCONFIG_USB_NET_HUAWEI_CDC_NCM=yCONFIG_USB_NET_CDC_MBIM=yCONFIG_USB_NET_DM9601=yCONFIG_USB_NET_SR9700=yCONFIG_USB_NET_SR9800=yCONFIG_USB_NET_SMSC75XX=yCONFIG_USB_NET_SMSC95XX=yCONFIG_USB_NET_GL620A=yCONFIG_USB_NET_NET1080=yCONFIG_USB_NET_PLUSB=yCONFIG_USB_NET_MCS7830=yCONFIG_USB_NET_RNDIS_HOST=yCONFIG_USB_NET_CDC_SUBSET_ENABLE=yCONFIG_USB_NET_CDC_SUBSET=yCONFIG_USB_ALI_M5632=yCONFIG_USB_AN2720=yCONFIG_USB_BELKIN=yCONFIG_USB_ARMLINUX=yCONFIG_USB_EPSON2888=yCONFIG_USB_KC2190=yCONFIG_USB_NET_ZAURUS=yCONFIG_USB_NET_CX82310_ETH=yCONFIG_USB_NET_KALMIA=yCONFIG_USB_NET_QMI_WWAN=yCONFIG_USB_HSO=yCONFIG_USB_NET_INT51X1=yCONFIG_USB_CDC_PHONET=yCONFIG_USB_IPHETH=yCONFIG_USB_SIERRA_NET=yCONFIG_USB_VL600=yCONFIG_USB_NET_CH9200=yCONFIG_USB_NET_AQC111=yCONFIG_USB_RTL8153_ECM=yCONFIG_WLAN=yCONFIG_WLAN_VENDOR_ADMTEK=y
# CONFIG_ADM8211 is not setCONFIG_ATH_COMMON=yCONFIG_WLAN_VENDOR_ATH=y
# CONFIG_ATH_DEBUG is not set
# CONFIG_ATH5K is not set
# CONFIG_ATH5K_PCI is not setCONFIG_ATH9K_HW=yCONFIG_ATH9K_COMMON=yCONFIG_ATH9K_COMMON_DEBUG=yCONFIG_ATH9K_BTCOEX_SUPPORT=yCONFIG_ATH9K=yCONFIG_ATH9K_PCI=yCONFIG_ATH9K_AHB=yCONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_STATION_STATISTICS is not setCONFIG_ATH9K_DYNACK=y
# CONFIG_ATH9K_WOW is not setCONFIG_ATH9K_RFKILL=yCONFIG_ATH9K_CHANNEL_CONTEXT=yCONFIG_ATH9K_PCOEM=y
# CONFIG_ATH9K_PCI_NO_EEPROM is not setCONFIG_ATH9K_HTC=yCONFIG_ATH9K_HTC_DEBUGFS=y
# CONFIG_ATH9K_HWRNG is not setCONFIG_ATH9K_COMMON_SPECTRAL=yCONFIG_CARL9170=yCONFIG_CARL9170_LEDS=y
# CONFIG_CARL9170_DEBUGFS is not setCONFIG_CARL9170_WPC=yCONFIG_CARL9170_HWRNG=yCONFIG_ATH6KL=y
# CONFIG_ATH6KL_SDIO is not setCONFIG_ATH6KL_USB=y
# CONFIG_ATH6KL_DEBUG is not set
# CONFIG_ATH6KL_TRACING is not setCONFIG_AR5523=y
# CONFIG_WIL6210 is not setCONFIG_ATH10K=yCONFIG_ATH10K_CE=yCONFIG_ATH10K_PCI=y
# CONFIG_ATH10K_AHB is not setCONFIG_ATH10K_SDIO=yCONFIG_ATH10K_USB=yCONFIG_ATH10K_SNOC=y
# CONFIG_ATH10K_DEBUG is not set
# CONFIG_ATH10K_DEBUGFS is not setCONFIG_ATH10K_LEDS=y
# CONFIG_ATH10K_TRACING is not setCONFIG_WCN36XX=y
# CONFIG_WCN36XX_DEBUGFS is not setCONFIG_ATH11K=yCONFIG_ATH11K_AHB=yCONFIG_ATH11K_PCI=y
# CONFIG_ATH11K_DEBUG is not set
# CONFIG_ATH11K_DEBUGFS is not set
# CONFIG_ATH11K_TRACING is not setCONFIG_ATH12K=y
# CONFIG_ATH12K_AHB is not set
# CONFIG_ATH12K_DEBUG is not set
# CONFIG_ATH12K_DEBUGFS is not set
# CONFIG_ATH12K_TRACING is not set
# CONFIG_ATH12K_COREDUMP is not set
# CONFIG_WLAN_VENDOR_ATMEL is not set
# CONFIG_WLAN_VENDOR_BROADCOM is not set
# CONFIG_WLAN_VENDOR_INTEL is not set
# CONFIG_WLAN_VENDOR_INTERSIL is not set
# CONFIG_WLAN_VENDOR_MARVELL is not set
# CONFIG_WLAN_VENDOR_MEDIATEK is not set
# CONFIG_WLAN_VENDOR_MICROCHIP is not setCONFIG_WLAN_VENDOR_PURELIFI=yCONFIG_PLFXLC=y
# CONFIG_WLAN_VENDOR_RALINK is not set
# CONFIG_WLAN_VENDOR_REALTEK is not set
# CONFIG_WLAN_VENDOR_RSI is not setCONFIG_WLAN_VENDOR_SILABS=y
# CONFIG_WFX is not set
# CONFIG_WLAN_VENDOR_ST is not set
# CONFIG_WLAN_VENDOR_TI is not set
# CONFIG_WLAN_VENDOR_ZYDAS is not set
# CONFIG_WLAN_VENDOR_QUANTENNA is not setCONFIG_MAC80211_HWSIM=yCONFIG_VIRT_WIFI=yCONFIG_WAN=yCONFIG_HDLC=yCONFIG_HDLC_RAW=yCONFIG_HDLC_RAW_ETH=yCONFIG_HDLC_CISCO=yCONFIG_HDLC_FR=yCONFIG_HDLC_PPP=yCONFIG_HDLC_X25=y
# CONFIG_FRAMER is not set
# CONFIG_PCI200SYN is not set
# CONFIG_WANXL is not set
# CONFIG_PC300TOO is not set
# CONFIG_FARSYNC is not set
# CONFIG_SLIC_DS26522 is not setCONFIG_LAPBETHER=yCONFIG_IEEE802154_DRIVERS=y
# CONFIG_IEEE802154_FAKELB is not set
# CONFIG_IEEE802154_AT86RF230 is not set
# CONFIG_IEEE802154_MRF24J40 is not set
# CONFIG_IEEE802154_CC2520 is not setCONFIG_IEEE802154_ATUSB=y
# CONFIG_IEEE802154_ADF7242 is not set
# CONFIG_IEEE802154_CA8210 is not set
# CONFIG_IEEE802154_MCR20A is not setCONFIG_IEEE802154_HWSIM=y
#
# Wireless WAN
#CONFIG_WWAN=yCONFIG_WWAN_DEBUGFS=y
# CONFIG_WWAN_HWSIM is not setCONFIG_MHI_WWAN_CTRL=yCONFIG_MHI_WWAN_MBIM=y
# CONFIG_QCOM_BAM_DMUX is not set
# CONFIG_RPMSG_WWAN_CTRL is not set
# CONFIG_IOSM is not set
# CONFIG_MTK_T7XX is not set
# end of Wireless WAN
CONFIG_VMXNET3=y
# CONFIG_FUJITSU_ES is not setCONFIG_USB4_NET=yCONFIG_NETDEVSIM=yCONFIG_NET_FAILOVER=yCONFIG_ISDN=yCONFIG_ISDN_CAPI=yCONFIG_MISDN=yCONFIG_MISDN_DSP=yCONFIG_MISDN_L1OIP=y
#
# mISDN hardware drivers
#
# CONFIG_MISDN_HFCPCI is not set
# CONFIG_MISDN_HFCMULTI is not setCONFIG_MISDN_HFCUSB=y
# CONFIG_MISDN_AVMFRITZ is not set
# CONFIG_MISDN_SPEEDFAX is not set
# CONFIG_MISDN_INFINEON is not set
# CONFIG_MISDN_W6692 is not set
# CONFIG_MISDN_NETJET is not set
#
# Input device support
#CONFIG_INPUT=yCONFIG_INPUT_LEDS=yCONFIG_INPUT_FF_MEMLESS=y
# CONFIG_INPUT_SPARSEKMAP is not setCONFIG_INPUT_MATRIXKMAP=yCONFIG_INPUT_VIVALDIFMAP=y
#
# Userland interfaces
#CONFIG_INPUT_MOUSEDEV=yCONFIG_INPUT_MOUSEDEV_PSAUX=yCONFIG_INPUT_MOUSEDEV_SCREEN_X=1024CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768CONFIG_INPUT_JOYDEV=yCONFIG_INPUT_EVDEV=y
#
# Input Device Drivers
#CONFIG_INPUT_KEYBOARD=yCONFIG_KEYBOARD_ADC=y
# CONFIG_KEYBOARD_ADP5588 is not set
# CONFIG_KEYBOARD_ADP5589 is not setCONFIG_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 setCONFIG_KEYBOARD_GPIO=yCONFIG_KEYBOARD_GPIO_POLLED=y
# CONFIG_KEYBOARD_TCA6416 is not set
# CONFIG_KEYBOARD_TCA8418 is not set
# CONFIG_KEYBOARD_MATRIX 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 setCONFIG_KEYBOARD_SNVS_PWRKEY=y
# CONFIG_KEYBOARD_IMX is not setCONFIG_KEYBOARD_IMX_BBM_SCMI=yCONFIG_KEYBOARD_IMX_SC_KEY=y
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_TEGRA is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_PINEPHONE is not set
# CONFIG_KEYBOARD_SAMSUNG is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_SUN4I_LRADC is not set
# CONFIG_KEYBOARD_OMAP4 is not set
# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
# CONFIG_KEYBOARD_TWL4030 is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_CAP11XX is not set
# CONFIG_KEYBOARD_BCM is not set
# CONFIG_KEYBOARD_MT6779 is not setCONFIG_KEYBOARD_MTK_PMIC=y
# CONFIG_KEYBOARD_CYPRESS_SF is not setCONFIG_INPUT_MOUSE=yCONFIG_MOUSE_PS2=yCONFIG_MOUSE_PS2_ALPS=yCONFIG_MOUSE_PS2_BYD=yCONFIG_MOUSE_PS2_LOGIPS2PP=yCONFIG_MOUSE_PS2_SYNAPTICS=yCONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=yCONFIG_MOUSE_PS2_CYPRESS=yCONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_SENTELIC is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not setCONFIG_MOUSE_PS2_FOCALTECH=yCONFIG_MOUSE_PS2_SMBUS=y
# CONFIG_MOUSE_SERIAL is not setCONFIG_MOUSE_APPLETOUCH=yCONFIG_MOUSE_BCM5974=y
# CONFIG_MOUSE_CYAPA is not setCONFIG_MOUSE_ELAN_I2C=yCONFIG_MOUSE_ELAN_I2C_I2C=y
# CONFIG_MOUSE_ELAN_I2C_SMBUS is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_MOUSE_GPIO is not set
# CONFIG_MOUSE_SYNAPTICS_I2C is not setCONFIG_MOUSE_SYNAPTICS_USB=yCONFIG_INPUT_JOYSTICK=y
# CONFIG_JOYSTICK_ANALOG is not set
# CONFIG_JOYSTICK_A3D is not set
# CONFIG_JOYSTICK_ADC 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 setCONFIG_JOYSTICK_IFORCE=yCONFIG_JOYSTICK_IFORCE_USB=y
# CONFIG_JOYSTICK_IFORCE_232 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_DB9 is not set
# CONFIG_JOYSTICK_GAMECON is not set
# CONFIG_JOYSTICK_TURBOGRAFX is not set
# CONFIG_JOYSTICK_AS5011 is not set
# CONFIG_JOYSTICK_JOYDUMP is not setCONFIG_JOYSTICK_XPAD=yCONFIG_JOYSTICK_XPAD_FF=yCONFIG_JOYSTICK_XPAD_LEDS=y
# CONFIG_JOYSTICK_WALKERA0701 is not set
# CONFIG_JOYSTICK_PSXPAD_SPI is not setCONFIG_JOYSTICK_PXRC=y
# CONFIG_JOYSTICK_QWIIC is not set
# CONFIG_JOYSTICK_FSIA6B is not set
# CONFIG_JOYSTICK_SENSEHAT is not set
# CONFIG_JOYSTICK_SEESAW is not setCONFIG_INPUT_TABLET=yCONFIG_TABLET_USB_ACECAD=yCONFIG_TABLET_USB_AIPTEK=yCONFIG_TABLET_USB_HANWANG=yCONFIG_TABLET_USB_KBTAB=yCONFIG_TABLET_USB_PEGASUS=y
# CONFIG_TABLET_SERIAL_WACOM4 is not setCONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_ADS7846 is not set
# CONFIG_TOUCHSCREEN_AD7877 is not set
# CONFIG_TOUCHSCREEN_AD7879 is not set
# CONFIG_TOUCHSCREEN_ADC is not setCONFIG_TOUCHSCREEN_APPLE_Z2=y
# CONFIG_TOUCHSCREEN_AR1021_I2C is not setCONFIG_TOUCHSCREEN_ATMEL_MXT=y
# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
# CONFIG_TOUCHSCREEN_BU21013 is not set
# CONFIG_TOUCHSCREEN_BU21029 is not set
# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set
# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set
# CONFIG_TOUCHSCREEN_CY8CTMG110 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 is not set
# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
# CONFIG_TOUCHSCREEN_EXC3000 is not set
# CONFIG_TOUCHSCREEN_FUJITSU is not setCONFIG_TOUCHSCREEN_GOODIX=yCONFIG_TOUCHSCREEN_GOODIX_BERLIN_CORE=y
# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_I2C is not setCONFIG_TOUCHSCREEN_GOODIX_BERLIN_SPI=y
# CONFIG_TOUCHSCREEN_HIDEEP is not set
# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set
# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set
# CONFIG_TOUCHSCREEN_ILI210X is not set
# CONFIG_TOUCHSCREEN_ILITEK is not set
# CONFIG_TOUCHSCREEN_IPROC is not set
# CONFIG_TOUCHSCREEN_S6SY761 is not set
# CONFIG_TOUCHSCREEN_GUNZE is not set
# CONFIG_TOUCHSCREEN_EKTF2127 is not setCONFIG_TOUCHSCREEN_ELAN=y
# 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_MSG2638 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_IMX6UL_TSC is not set
# CONFIG_TOUCHSCREEN_INEXIO is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not setCONFIG_TOUCHSCREEN_EDT_FT5X06=y
# CONFIG_TOUCHSCREEN_RASPBERRYPI_FW is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
# CONFIG_TOUCHSCREEN_TI_AM335X_TSC is not set
# CONFIG_TOUCHSCREEN_PIXCIR is not set
# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not setCONFIG_TOUCHSCREEN_USB_COMPOSITE=yCONFIG_TOUCHSCREEN_USB_EGALAX=yCONFIG_TOUCHSCREEN_USB_PANJIT=yCONFIG_TOUCHSCREEN_USB_3M=yCONFIG_TOUCHSCREEN_USB_ITM=yCONFIG_TOUCHSCREEN_USB_ETURBO=yCONFIG_TOUCHSCREEN_USB_GUNZE=yCONFIG_TOUCHSCREEN_USB_DMC_TSC10=yCONFIG_TOUCHSCREEN_USB_IRTOUCH=yCONFIG_TOUCHSCREEN_USB_IDEALTEK=yCONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=yCONFIG_TOUCHSCREEN_USB_GOTOP=yCONFIG_TOUCHSCREEN_USB_JASTEC=yCONFIG_TOUCHSCREEN_USB_ELO=yCONFIG_TOUCHSCREEN_USB_E2I=yCONFIG_TOUCHSCREEN_USB_ZYTRONIC=yCONFIG_TOUCHSCREEN_USB_ETT_TC45USB=yCONFIG_TOUCHSCREEN_USB_NEXIO=yCONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
# CONFIG_TOUCHSCREEN_TSC_SERIO is not set
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
# CONFIG_TOUCHSCREEN_TSC2007 is not set
# CONFIG_TOUCHSCREEN_RM_TS is not set
# CONFIG_TOUCHSCREEN_SILEAD is not set
# CONFIG_TOUCHSCREEN_SIS_I2C is not set
# CONFIG_TOUCHSCREEN_ST1232 is not set
# CONFIG_TOUCHSCREEN_STMFTS is not set
# CONFIG_TOUCHSCREEN_SUN4I is not setCONFIG_TOUCHSCREEN_SUR40=y
# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
# CONFIG_TOUCHSCREEN_SX8654 is not set
# CONFIG_TOUCHSCREEN_TPS6507X is not set
# CONFIG_TOUCHSCREEN_ZET6223 is not set
# CONFIG_TOUCHSCREEN_ZFORCE is not set
# CONFIG_TOUCHSCREEN_COLIBRI_VF50 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 setCONFIG_INPUT_MISC=y
# CONFIG_INPUT_AD714X is not set
# CONFIG_INPUT_ATMEL_CAPTOUCH is not setCONFIG_INPUT_BBNSM_PWRKEY=y
# CONFIG_INPUT_BMA150 is not set
# CONFIG_INPUT_E3X0_BUTTON is not setCONFIG_INPUT_PM8941_PWRKEY=yCONFIG_INPUT_PM8XXX_VIBRATOR=y
# CONFIG_INPUT_MMA8450 is not set
# CONFIG_INPUT_GPIO_BEEPER is not set
# CONFIG_INPUT_GPIO_DECODER is not set
# CONFIG_INPUT_GPIO_VIBRA is not setCONFIG_INPUT_ATI_REMOTE2=yCONFIG_INPUT_KEYSPAN_REMOTE=y
# CONFIG_INPUT_KXTJ9 is not setCONFIG_INPUT_POWERMATE=yCONFIG_INPUT_YEALINK=yCONFIG_INPUT_CM109=y
# CONFIG_INPUT_REGULATOR_HAPTIC is not set
# CONFIG_INPUT_RETU_PWRBUTTON is not setCONFIG_INPUT_TPS65219_PWRBUTTON=y
# CONFIG_INPUT_AXP20X_PEK is not set
# CONFIG_INPUT_TWL4030_PWRBUTTON is not set
# CONFIG_INPUT_TWL4030_VIBRA is not setCONFIG_INPUT_UINPUT=y
# CONFIG_INPUT_PCF8574 is not setCONFIG_INPUT_PWM_BEEPER=yCONFIG_INPUT_PWM_VIBRA=yCONFIG_INPUT_RK805_PWRKEY=y
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
# CONFIG_INPUT_DA7280_HAPTICS is not setCONFIG_INPUT_DA9063_ONKEY=y
# CONFIG_INPUT_ADXL34X is not set
# CONFIG_INPUT_IBM_PANEL is not setCONFIG_INPUT_IMS_PCU=y
# 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_SOC_BUTTON_ARRAY is not set
# CONFIG_INPUT_DRV260X_HAPTICS is not set
# CONFIG_INPUT_DRV2665_HAPTICS is not set
# CONFIG_INPUT_DRV2667_HAPTICS is not setCONFIG_INPUT_HISI_POWERKEY=yCONFIG_RMI4_CORE=y
# CONFIG_RMI4_I2C is not set
# CONFIG_RMI4_SPI is not set
# CONFIG_RMI4_SMB is not setCONFIG_RMI4_F03=yCONFIG_RMI4_F03_SERIO=yCONFIG_RMI4_2D_SENSOR=yCONFIG_RMI4_F11=yCONFIG_RMI4_F12=yCONFIG_RMI4_F30=y
# CONFIG_RMI4_F34 is not setCONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
# CONFIG_RMI4_F55 is not set
#
# Hardware I/O ports
#CONFIG_SERIO=yCONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PARKBD is not setCONFIG_SERIO_AMBAKMI=y
# CONFIG_SERIO_PCIPS2 is not setCONFIG_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_SERIO_APBPS2 is not set
# CONFIG_SERIO_SUN4I_PS2 is not set
# CONFIG_SERIO_GPIO_PS2 is not setCONFIG_USERIO=y
# CONFIG_GAMEPORT is not set
# end of Hardware I/O ports # end of Input device support
#
# Character devices
#CONFIG_TTY=yCONFIG_VT=yCONFIG_CONSOLE_TRANSLATIONS=yCONFIG_VT_CONSOLE=yCONFIG_VT_CONSOLE_SLEEP=yCONFIG_VT_HW_CONSOLE_BINDING=yCONFIG_UNIX98_PTYS=yCONFIG_LEGACY_PTYS=yCONFIG_LEGACY_PTY_COUNT=256CONFIG_LEGACY_TIOCSTI=yCONFIG_LDISC_AUTOLOAD=y
#
# Serial drivers
#CONFIG_SERIAL_EARLYCON=yCONFIG_SERIAL_8250=yCONFIG_SERIAL_8250_DEPRECATED_OPTIONS=yCONFIG_SERIAL_8250_PNP=yCONFIG_SERIAL_8250_16550A_VARIANTS=y
# CONFIG_SERIAL_8250_FINTEK is not setCONFIG_SERIAL_8250_CONSOLE=yCONFIG_SERIAL_8250_DMA=yCONFIG_SERIAL_8250_PCILIB=yCONFIG_SERIAL_8250_PCI=y
# CONFIG_SERIAL_8250_EXAR is not set
# CONFIG_SERIAL_8250_CS is not setCONFIG_SERIAL_8250_NR_UARTS=32CONFIG_SERIAL_8250_RUNTIME_UARTS=4CONFIG_SERIAL_8250_EXTENDED=yCONFIG_SERIAL_8250_MANY_PORTS=y
# CONFIG_SERIAL_8250_PCI1XXXX is not setCONFIG_SERIAL_8250_SHARE_IRQ=yCONFIG_SERIAL_8250_DETECT_IRQ=yCONFIG_SERIAL_8250_RSA=yCONFIG_SERIAL_8250_DWLIB=yCONFIG_SERIAL_8250_BCM2835AUX=yCONFIG_SERIAL_8250_FSL=yCONFIG_SERIAL_8250_DW=yCONFIG_SERIAL_8250_EM=y
# CONFIG_SERIAL_8250_RT288X is not setCONFIG_SERIAL_8250_OMAP=yCONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=yCONFIG_SERIAL_8250_MT6577=yCONFIG_SERIAL_8250_UNIPHIER=yCONFIG_SERIAL_8250_PERICOM=yCONFIG_SERIAL_8250_TEGRA=yCONFIG_SERIAL_8250_BCM7271=yCONFIG_SERIAL_OF_PLATFORM=y
#
# Non-8250 serial port support
#
# CONFIG_SERIAL_AMBA_PL010 is not setCONFIG_SERIAL_AMBA_PL011=yCONFIG_SERIAL_AMBA_PL011_CONSOLE=y
# CONFIG_SERIAL_EARLYCON_SEMIHOST is not setCONFIG_SERIAL_MESON=yCONFIG_SERIAL_MESON_CONSOLE=yCONFIG_SERIAL_SAMSUNG=yCONFIG_SERIAL_SAMSUNG_UARTS=4CONFIG_SERIAL_SAMSUNG_CONSOLE=yCONFIG_SERIAL_TEGRA=yCONFIG_SERIAL_TEGRA_TCU=yCONFIG_SERIAL_TEGRA_TCU_CONSOLE=y
# CONFIG_SERIAL_TEGRA_UTC is not set
# CONFIG_SERIAL_MAX3100 is not set
# CONFIG_SERIAL_MAX310X is not setCONFIG_SERIAL_IMX=yCONFIG_SERIAL_IMX_CONSOLE=yCONFIG_SERIAL_IMX_EARLYCON=y
# CONFIG_SERIAL_UARTLITE is not setCONFIG_SERIAL_SH_SCI=yCONFIG_SERIAL_SH_SCI_NR_UARTS=18CONFIG_SERIAL_SH_SCI_CONSOLE=yCONFIG_SERIAL_SH_SCI_EARLYCON=yCONFIG_SERIAL_SH_SCI_DMA=yCONFIG_SERIAL_CORE=yCONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not setCONFIG_SERIAL_MSM=yCONFIG_SERIAL_MSM_CONSOLE=yCONFIG_SERIAL_QCOM_GENI=yCONFIG_SERIAL_QCOM_GENI_CONSOLE=y
# CONFIG_SERIAL_SIFIVE is not set
# CONFIG_SERIAL_SCCNXP is not set
# CONFIG_SERIAL_SC16IS7XX is not setCONFIG_SERIAL_BCM63XX=y
# CONFIG_SERIAL_BCM63XX_CONSOLE is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not setCONFIG_SERIAL_XILINX_PS_UART=yCONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
# CONFIG_SERIAL_ARC is not set
# CONFIG_SERIAL_RP2 is not setCONFIG_SERIAL_FSL_LPUART=yCONFIG_SERIAL_FSL_LPUART_CONSOLE=yCONFIG_SERIAL_FSL_LINFLEXUART=yCONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE=y
# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
# CONFIG_SERIAL_SPRD is not setCONFIG_SERIAL_STM32=yCONFIG_SERIAL_STM32_CONSOLE=yCONFIG_SERIAL_MVEBU_UART=yCONFIG_SERIAL_MVEBU_CONSOLE=yCONFIG_SERIAL_OWL=yCONFIG_SERIAL_OWL_CONSOLE=y
# CONFIG_SERIAL_NUVOTON_MA35D1 is not set
# end of Serial drivers
CONFIG_SERIAL_MCTRL_GPIO=yCONFIG_SERIAL_NONSTANDARD=y
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not setCONFIG_N_HDLC=y
# CONFIG_IPWIRELESS is not setCONFIG_N_GSM=yCONFIG_NOZOMI=yCONFIG_NULL_TTY=yCONFIG_HVC_DRIVER=y
# CONFIG_HVC_DCC is not set
# CONFIG_RPMSG_TTY is not setCONFIG_SERIAL_DEV_BUS=yCONFIG_SERIAL_DEV_CTRL_TTYPORT=yCONFIG_TTY_PRINTK=yCONFIG_TTY_PRINTK_LEVEL=6
# CONFIG_PRINTER is not set
# CONFIG_PPDEV is not setCONFIG_VIRTIO_CONSOLE=yCONFIG_IPMI_HANDLER=yCONFIG_IPMI_DMI_DECODE=yCONFIG_IPMI_PLAT_DATA=y
# CONFIG_IPMI_PANIC_EVENT is not setCONFIG_IPMI_DEVICE_INTERFACE=yCONFIG_IPMI_SI=y
# CONFIG_IPMI_SSIF is not set
# CONFIG_IPMI_IPMB is not set
# CONFIG_IPMI_WATCHDOG is not set
# CONFIG_IPMI_POWEROFF is not set
# CONFIG_NPCM7XX_KCS_IPMI_BMC is not set
# CONFIG_SSIF_IPMI_BMC is not set
# CONFIG_IPMB_DEVICE_INTERFACE is not setCONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_TIMERIOMEM is not setCONFIG_HW_RANDOM_AIROHA=y
# CONFIG_HW_RANDOM_BA431 is not setCONFIG_HW_RANDOM_BCM2835=yCONFIG_HW_RANDOM_BCM74110=yCONFIG_HW_RANDOM_IPROC_RNG200=yCONFIG_HW_RANDOM_OMAP=yCONFIG_HW_RANDOM_VIRTIO=yCONFIG_HW_RANDOM_HISI=yCONFIG_HW_RANDOM_HISTB=yCONFIG_HW_RANDOM_XGENE=yCONFIG_HW_RANDOM_STM32=yCONFIG_HW_RANDOM_MESON=yCONFIG_HW_RANDOM_CAVIUM=yCONFIG_HW_RANDOM_MTK=yCONFIG_HW_RANDOM_EXYNOS=yCONFIG_HW_RANDOM_OPTEE=yCONFIG_HW_RANDOM_NPCM=y
# CONFIG_HW_RANDOM_CCTRNG is not set
# CONFIG_HW_RANDOM_XIPHERA is not setCONFIG_HW_RANDOM_ARM_SMCCC_TRNG=yCONFIG_HW_RANDOM_CN10K=yCONFIG_HW_RANDOM_ROCKCHIP=y
# CONFIG_APPLICOM is not set
# CONFIG_DEVMEM is not set
# CONFIG_DEVPORT is not setCONFIG_TCG_TPM=y
# CONFIG_TCG_TPM2_HMAC is not setCONFIG_HW_RANDOM_TPM=yCONFIG_TCG_TIS_CORE=yCONFIG_TCG_TIS=yCONFIG_TCG_TIS_SPI=yCONFIG_TCG_TIS_SPI_CR50=y
# CONFIG_TCG_TIS_I2C is not set
# CONFIG_TCG_TIS_SYNQUACER is not setCONFIG_TCG_TIS_I2C_CR50=y
# CONFIG_TCG_TIS_I2C_ATMEL is not setCONFIG_TCG_TIS_I2C_INFINEON=y
# CONFIG_TCG_TIS_I2C_NUVOTON is not set
# CONFIG_TCG_ATMEL is not set
# CONFIG_TCG_INFINEON is not setCONFIG_TCG_CRB=yCONFIG_TCG_VTPM_PROXY=yCONFIG_TCG_FTPM_TEE=y
# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
# CONFIG_TCG_TIS_ST33ZP24_SPI is not setCONFIG_XILLYBUS_CLASS=y
# CONFIG_XILLYBUS is not setCONFIG_XILLYUSB=y
# end of Character devices
#
# I2C support
#CONFIG_I2C=yCONFIG_ACPI_I2C_OPREGION=yCONFIG_I2C_BOARDINFO=yCONFIG_I2C_CHARDEV=yCONFIG_I2C_MUX=y
#
# Multiplexer I2C Chip support
#
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
# CONFIG_I2C_MUX_GPIO is not set
# CONFIG_I2C_MUX_GPMUX is not set
# CONFIG_I2C_MUX_LTC4306 is not set
# CONFIG_I2C_MUX_PCA9541 is not set
CONFIG_I2C_MUX_PCA954x=yCONFIG_I2C_MUX_PINCTRL=yCONFIG_I2C_MUX_REG=y
# CONFIG_I2C_DEMUX_PINCTRL is not set
# CONFIG_I2C_MUX_MLXCPLD is not set
# end of Multiplexer I2C Chip support
CONFIG_I2C_HELPER_AUTO=yCONFIG_I2C_SMBUS=yCONFIG_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_HIX5HD2 is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_ISCH 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_ALTERA is not set CONFIG_I2C_BCM2835=yCONFIG_I2C_BCM_IPROC=yCONFIG_I2C_BRCMSTB=yCONFIG_I2C_CADENCE=y
# CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_DESIGNWARE_CORE=y
# CONFIG_I2C_DESIGNWARE_SLAVE is not set CONFIG_I2C_DESIGNWARE_PLATFORM=y
# CONFIG_I2C_DESIGNWARE_PCI is not set
# CONFIG_I2C_EMEV2 is not setCONFIG_I2C_EXYNOS5=yCONFIG_I2C_GPIO=y
# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
# CONFIG_I2C_HISI is not setCONFIG_I2C_IMX=yCONFIG_I2C_IMX_LPI2C=yCONFIG_I2C_MESON=yCONFIG_I2C_MT65XX=y
# CONFIG_I2C_MT7621 is not set CONFIG_I2C_MV64XXX=y
# CONFIG_I2C_NOMADIK is not set
# CONFIG_I2C_NPCM is not set
# CONFIG_I2C_OCORES is not setCONFIG_I2C_OMAP=yCONFIG_I2C_OWL=yCONFIG_I2C_APPLE=y
# CONFIG_I2C_PCA_PLATFORM is not set CONFIG_I2C_PXA=y
# CONFIG_I2C_PXA_SLAVE is not set CONFIG_I2C_QCOM_CCI=yCONFIG_I2C_QCOM_GENI=yCONFIG_I2C_QUP=yCONFIG_I2C_RIIC=yCONFIG_I2C_RK3X=yCONFIG_I2C_RZV2M=yCONFIG_I2C_S3C2410=yCONFIG_I2C_SH_MOBILE=y
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_SPRD is not set
# CONFIG_I2C_STM32F4 is not set
# CONFIG_I2C_STM32F7 is not set
# CONFIG_I2C_SYNQUACER is not set CONFIG_I2C_TEGRA=yCONFIG_I2C_TEGRA_BPMP=y
# CONFIG_I2C_UNIPHIER is not set CONFIG_I2C_UNIPHIER_F=yCONFIG_I2C_VERSATILE=y
# CONFIG_I2C_THUNDERX is not set
# CONFIG_I2C_XILINX is not set
# CONFIG_I2C_XLP9XX is not setCONFIG_I2C_RCAR=y
#
# External I2C/SMBus adapter drivers
#CONFIG_I2C_DIOLAN_U2C=yCONFIG_I2C_DLN2=yCONFIG_I2C_LJCA=yCONFIG_I2C_CP2615=y
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PCI1XXXX is not setCONFIG_I2C_ROBOTFUZZ_OSIF=y
# CONFIG_I2C_TAOS_EVM is not setCONFIG_I2C_TINY_USB=yCONFIG_I2C_VIPERBOARD=y
#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_MLXCPLD is not set
# CONFIG_I2C_XGENE_SLIMPRO is not set
# CONFIG_I2C_VIRTIO is not set
# end of I2C Hardware Bus support
# CONFIG_I2C_STUB is not setCONFIG_I2C_SLAVE=yCONFIG_I2C_SLAVE_EEPROM=y
# CONFIG_I2C_SLAVE_TESTUNIT 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 setCONFIG_SPI=y
# CONFIG_SPI_DEBUG is not setCONFIG_SPI_MASTER=yCONFIG_SPI_MEM=y
#
# SPI Master Controller Drivers
#
# CONFIG_SPI_AIROHA_SNFI is not set
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMLOGIC_SPIFC_A1 is not set
# CONFIG_SPI_APPLE is not setCONFIG_SPI_ARMADA_3700=y
# CONFIG_SPI_AXI_SPI_ENGINE is not setCONFIG_SPI_BCM2835=yCONFIG_SPI_BCM2835AUX=y
# CONFIG_SPI_BCM63XX_HSSPI is not setCONFIG_SPI_BCM_QSPI=y
# CONFIG_SPI_BCMBCA_HSSPI is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_BUTTERFLY is not set
# CONFIG_SPI_CADENCE is not setCONFIG_SPI_CADENCE_QUADSPI=y
# CONFIG_SPI_CADENCE_XSPI is not set
# CONFIG_SPI_CH341 is not setCONFIG_SPI_DESIGNWARE=yCONFIG_SPI_DW_DMA=y
# CONFIG_SPI_DW_PCI is not setCONFIG_SPI_DW_MMIO=yCONFIG_SPI_DLN2=yCONFIG_SPI_FSL_LPSPI=yCONFIG_SPI_FSL_QUADSPI=y
# CONFIG_SPI_HISI_KUNPENG is not set
# CONFIG_SPI_HISI_SFC_V3XX is not setCONFIG_SPI_NXP_FLEXSPI=y
# CONFIG_SPI_GPIO is not setCONFIG_SPI_IMX=y
# CONFIG_SPI_LM70_LLP is not set
# CONFIG_SPI_FSL_SPI is not setCONFIG_SPI_FSL_DSPI=yCONFIG_SPI_LJCA=yCONFIG_SPI_MESON_SPICC=yCONFIG_SPI_MESON_SPIFC=y
# CONFIG_SPI_MICROCHIP_CORE is not set
# CONFIG_SPI_MICROCHIP_CORE_QSPI is not setCONFIG_SPI_MT65XX=yCONFIG_SPI_MTK_NOR=y
# CONFIG_SPI_WPCM_FIU is not set
# CONFIG_SPI_NPCM_FIU is not set
# CONFIG_SPI_NPCM_PSPI is not set
# CONFIG_SPI_OC_TINY is not setCONFIG_SPI_OMAP24XX=yCONFIG_SPI_ORION=y
# CONFIG_SPI_PCI1XXXX is not setCONFIG_SPI_PL022=yCONFIG_SPI_ROCKCHIP=yCONFIG_SPI_ROCKCHIP_SFC=yCONFIG_SPI_RPCIF=yCONFIG_SPI_RSPI=yCONFIG_SPI_RZV2M_CSI=yCONFIG_SPI_QCOM_QSPI=y
# CONFIG_SPI_QPIC_SNAND is not setCONFIG_SPI_QUP=yCONFIG_SPI_QCOM_GENI=yCONFIG_SPI_S3C64XX=y
# CONFIG_SPI_SC18IS602 is not setCONFIG_SPI_SH_MSIOF=y
# CONFIG_SPI_SH_HSPI is not set
# CONFIG_SPI_SIFIVE is not set
# CONFIG_SPI_SN_F_OSPI is not set
# CONFIG_SPI_SPRD is not set
# CONFIG_SPI_SPRD_ADI is not set
# CONFIG_SPI_STM32 is not set
# CONFIG_SPI_STM32_OSPI is not set
# CONFIG_SPI_STM32_QSPI is not set
# CONFIG_SPI_SUN4I is not setCONFIG_SPI_SUN6I=y
# CONFIG_SPI_SYNQUACER is not set
# CONFIG_SPI_MXIC is not setCONFIG_SPI_TEGRA210_QUAD=yCONFIG_SPI_TEGRA114=y
# CONFIG_SPI_TEGRA20_SFLASH is not set
# CONFIG_SPI_TEGRA20_SLINK is not set
# CONFIG_SPI_THUNDERX is not set
# CONFIG_SPI_UNIPHIER is not set
# CONFIG_SPI_XCOMM is not set
# CONFIG_SPI_XILINX is not set
# CONFIG_SPI_XLP is not set
# CONFIG_SPI_ZYNQMP_GQSPI is not set
# CONFIG_SPI_AMD is not set
#
# SPI Multiplexer support
#
# CONFIG_SPI_MUX is not set
#
# SPI Protocol Masters
#CONFIG_SPI_SPIDEV=y
# CONFIG_SPI_LOOPBACK_TEST is not set
# CONFIG_SPI_TLE62X0 is not set
# CONFIG_SPI_SLAVE is not setCONFIG_SPI_DYNAMIC=yCONFIG_SPMI=y
# CONFIG_SPMI_APPLE is not set
# CONFIG_SPMI_HISI3670 is not setCONFIG_SPMI_MSM_PMIC_ARB=yCONFIG_SPMI_MTK_PMIF=y
# CONFIG_HSI is not setCONFIG_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_PARPORT is not set
# CONFIG_PPS_CLIENT_GPIO is not set
# CONFIG_PPS_GENERATOR is not set
#
# PTP clock support
#CONFIG_PTP_1588_CLOCK=yCONFIG_PTP_1588_CLOCK_OPTIONAL=yCONFIG_PTP_1588_CLOCK_DTE=yCONFIG_PTP_1588_CLOCK_QORIQ=y
#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. #CONFIG_PTP_1588_CLOCK_KVM=yCONFIG_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_OCP is not set
# end of PTP clock support
CONFIG_PINCTRL=yCONFIG_GENERIC_PINCTRL_GROUPS=yCONFIG_PINMUX=yCONFIG_GENERIC_PINMUX_FUNCTIONS=yCONFIG_PINCONF=yCONFIG_GENERIC_PINCONF=y
# CONFIG_DEBUG_PINCTRL is not set
# CONFIG_PINCTRL_AMD is not set
# CONFIG_PINCTRL_APPLE_GPIO is not set
# CONFIG_PINCTRL_AXP209 is not set
# CONFIG_PINCTRL_AW9523 is not set
# CONFIG_PINCTRL_CY8C95X0 is not setCONFIG_PINCTRL_DA9062=y
# CONFIG_PINCTRL_KEEMBAY is not setCONFIG_PINCTRL_MAX77620=y
# CONFIG_PINCTRL_MCP23S08 is not set
# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set
# CONFIG_PINCTRL_OCELOT is not setCONFIG_PINCTRL_RK805=yCONFIG_PINCTRL_ROCKCHIP=y
# CONFIG_PINCTRL_SCMI is not setCONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SX150X is not setCONFIG_PINCTRL_TPS6594=yCONFIG_PINCTRL_ZYNQMP=yCONFIG_PINCTRL_OWL=yCONFIG_PINCTRL_S700=yCONFIG_PINCTRL_S900=yCONFIG_PINCTRL_BCM2835=yCONFIG_PINCTRL_BCM4908=yCONFIG_PINCTRL_IPROC_GPIO=yCONFIG_PINCTRL_NS2_MUX=y
# CONFIG_PINCTRL_AS370 is not set
# CONFIG_PINCTRL_BERLIN_BG4CT is not setCONFIG_PINCTRL_IMX=y
# CONFIG_PINCTRL_IMX_SCMI is not setCONFIG_PINCTRL_IMX_SCU=yCONFIG_PINCTRL_IMX8MM=yCONFIG_PINCTRL_IMX8MN=yCONFIG_PINCTRL_IMX8MP=yCONFIG_PINCTRL_IMX8MQ=yCONFIG_PINCTRL_IMX8QM=yCONFIG_PINCTRL_IMX8QXP=yCONFIG_PINCTRL_IMX8DXL=yCONFIG_PINCTRL_IMX8ULP=y
# CONFIG_PINCTRL_IMX91 is not setCONFIG_PINCTRL_IMX93=y
#
# MediaTek pinctrl drivers
#CONFIG_EINT_MTK=yCONFIG_PINCTRL_MTK=yCONFIG_PINCTRL_MTK_V2=yCONFIG_PINCTRL_MTK_MOORE=yCONFIG_PINCTRL_MTK_PARIS=y
# CONFIG_PINCTRL_AIROHA is not setCONFIG_PINCTRL_MT2712=yCONFIG_PINCTRL_MT6765=yCONFIG_PINCTRL_MT6779=yCONFIG_PINCTRL_MT6795=yCONFIG_PINCTRL_MT6797=yCONFIG_PINCTRL_MT6893=yCONFIG_PINCTRL_MT7622=yCONFIG_PINCTRL_MT7981=yCONFIG_PINCTRL_MT7986=yCONFIG_PINCTRL_MT7988=yCONFIG_PINCTRL_MT8167=yCONFIG_PINCTRL_MT8173=yCONFIG_PINCTRL_MT8183=yCONFIG_PINCTRL_MT8186=yCONFIG_PINCTRL_MT8188=yCONFIG_PINCTRL_MT8192=yCONFIG_PINCTRL_MT8195=yCONFIG_PINCTRL_MT8196=yCONFIG_PINCTRL_MT8365=yCONFIG_PINCTRL_MT8516=yCONFIG_PINCTRL_MT6397=y
# end of MediaTek pinctrl drivers
CONFIG_PINCTRL_MESON=yCONFIG_PINCTRL_MESON_GXBB=yCONFIG_PINCTRL_MESON_GXL=yCONFIG_PINCTRL_MESON8_PMX=yCONFIG_PINCTRL_MESON_AXG=yCONFIG_PINCTRL_MESON_AXG_PMX=yCONFIG_PINCTRL_MESON_G12A=yCONFIG_PINCTRL_MESON_A1=yCONFIG_PINCTRL_MESON_S4=yCONFIG_PINCTRL_AMLOGIC_A4=yCONFIG_PINCTRL_AMLOGIC_C3=yCONFIG_PINCTRL_AMLOGIC_T7=yCONFIG_PINCTRL_MVEBU=yCONFIG_PINCTRL_ARMADA_AP806=yCONFIG_PINCTRL_ARMADA_CP110=yCONFIG_PINCTRL_AC5=yCONFIG_PINCTRL_ARMADA_37XX=y
# CONFIG_PINCTRL_NPCM8XX is not set
# CONFIG_PINCTRL_MA35D1 is not set
# CONFIG_PINCTRL_S32G2 is not setCONFIG_PINCTRL_MSM=yCONFIG_PINCTRL_IPQ5018=yCONFIG_PINCTRL_IPQ5332=y
# CONFIG_PINCTRL_IPQ5424 is not setCONFIG_PINCTRL_IPQ8074=yCONFIG_PINCTRL_IPQ6018=yCONFIG_PINCTRL_IPQ9574=y
# CONFIG_PINCTRL_MDM9607 is not setCONFIG_PINCTRL_MSM8916=y
# CONFIG_PINCTRL_MSM8917 is not setCONFIG_PINCTRL_MSM8953=yCONFIG_PINCTRL_MSM8976=yCONFIG_PINCTRL_MSM8994=yCONFIG_PINCTRL_MSM8996=yCONFIG_PINCTRL_MSM8998=yCONFIG_PINCTRL_QCM2290=yCONFIG_PINCTRL_QCS404=yCONFIG_PINCTRL_QCS615=yCONFIG_PINCTRL_QCS8300=yCONFIG_PINCTRL_QDF2XXX=yCONFIG_PINCTRL_QDU1000=yCONFIG_PINCTRL_SA8775P=y
# CONFIG_PINCTRL_SAR2130P is not setCONFIG_PINCTRL_SC7180=yCONFIG_PINCTRL_SC7280=yCONFIG_PINCTRL_SC8180X=yCONFIG_PINCTRL_SC8280XP=yCONFIG_PINCTRL_SDM660=yCONFIG_PINCTRL_SDM670=yCONFIG_PINCTRL_SDM845=yCONFIG_PINCTRL_SDX75=yCONFIG_PINCTRL_SM4450=yCONFIG_PINCTRL_SM6115=yCONFIG_PINCTRL_SM6125=yCONFIG_PINCTRL_SM6350=yCONFIG_PINCTRL_SM6375=y
# CONFIG_PINCTRL_SM7150 is not setCONFIG_PINCTRL_SM8150=yCONFIG_PINCTRL_SM8250=yCONFIG_PINCTRL_SM8350=yCONFIG_PINCTRL_SM8450=yCONFIG_PINCTRL_SM8550=yCONFIG_PINCTRL_SM8650=yCONFIG_PINCTRL_SM8750=yCONFIG_PINCTRL_X1E80100=yCONFIG_PINCTRL_QCOM_SPMI_PMIC=y
# CONFIG_PINCTRL_QCOM_SSBI_PMIC is not setCONFIG_PINCTRL_LPASS_LPI=yCONFIG_PINCTRL_SC7280_LPASS_LPI=y
# CONFIG_PINCTRL_SM4250_LPASS_LPI is not setCONFIG_PINCTRL_SM6115_LPASS_LPI=yCONFIG_PINCTRL_SM8250_LPASS_LPI=yCONFIG_PINCTRL_SM8350_LPASS_LPI=yCONFIG_PINCTRL_SM8450_LPASS_LPI=yCONFIG_PINCTRL_SC8280XP_LPASS_LPI=yCONFIG_PINCTRL_SM8550_LPASS_LPI=yCONFIG_PINCTRL_SM8650_LPASS_LPI=yCONFIG_PINCTRL_RTD=yCONFIG_PINCTRL_RTD1619B=yCONFIG_PINCTRL_RTD1319D=yCONFIG_PINCTRL_RTD1315E=y
#
# Renesas pinctrl drivers
#CONFIG_PINCTRL_RENESAS=yCONFIG_PINCTRL_SH_PFC=yCONFIG_PINCTRL_PFC_R8A77995=yCONFIG_PINCTRL_PFC_R8A77990=yCONFIG_PINCTRL_PFC_R8A77951=yCONFIG_PINCTRL_PFC_R8A77965=yCONFIG_PINCTRL_PFC_R8A77960=yCONFIG_PINCTRL_PFC_R8A77961=yCONFIG_PINCTRL_PFC_R8A779F0=yCONFIG_PINCTRL_PFC_R8A77980=yCONFIG_PINCTRL_PFC_R8A77970=yCONFIG_PINCTRL_PFC_R8A779A0=yCONFIG_PINCTRL_PFC_R8A779G0=yCONFIG_PINCTRL_PFC_R8A779H0=yCONFIG_PINCTRL_RZG2L=yCONFIG_PINCTRL_PFC_R8A774C0=yCONFIG_PINCTRL_PFC_R8A774E1=yCONFIG_PINCTRL_PFC_R8A774A1=yCONFIG_PINCTRL_PFC_R8A774B1=yCONFIG_PINCTRL_RZV2M=y
# end of Renesas pinctrl drivers
CONFIG_PINCTRL_SAMSUNG=yCONFIG_PINCTRL_EXYNOS=yCONFIG_PINCTRL_EXYNOS_ARM64=y
# CONFIG_PINCTRL_SPRD_SC9860 is not setCONFIG_PINCTRL_STM32=yCONFIG_PINCTRL_STM32MP257=yCONFIG_PINCTRL_SUNXI=y
# CONFIG_PINCTRL_SUN4I_A10 is not set
# CONFIG_PINCTRL_SUN5I is not set
# CONFIG_PINCTRL_SUN6I_A31 is not set
# CONFIG_PINCTRL_SUN6I_A31_R is not set
# CONFIG_PINCTRL_SUN8I_A23 is not set
# CONFIG_PINCTRL_SUN8I_A33 is not set
# CONFIG_PINCTRL_SUN8I_A83T is not set
# CONFIG_PINCTRL_SUN8I_A83T_R is not set
# CONFIG_PINCTRL_SUN8I_A23_R is not set
# CONFIG_PINCTRL_SUN8I_H3 is not setCONFIG_PINCTRL_SUN8I_H3_R=y
# CONFIG_PINCTRL_SUN8I_V3S is not set
# CONFIG_PINCTRL_SUN9I_A80 is not set
# CONFIG_PINCTRL_SUN9I_A80_R is not set
# CONFIG_PINCTRL_SUN20I_D1 is not setCONFIG_PINCTRL_SUN50I_A64=yCONFIG_PINCTRL_SUN50I_A64_R=yCONFIG_PINCTRL_SUN50I_A100=yCONFIG_PINCTRL_SUN50I_A100_R=yCONFIG_PINCTRL_SUN50I_H5=yCONFIG_PINCTRL_SUN50I_H6=yCONFIG_PINCTRL_SUN50I_H6_R=yCONFIG_PINCTRL_SUN50I_H616=yCONFIG_PINCTRL_SUN50I_H616_R=yCONFIG_PINCTRL_SUN55I_A523=yCONFIG_PINCTRL_SUN55I_A523_R=yCONFIG_PINCTRL_TEGRA=yCONFIG_PINCTRL_TEGRA124=yCONFIG_PINCTRL_TEGRA210=yCONFIG_PINCTRL_TEGRA194=yCONFIG_PINCTRL_TEGRA234=yCONFIG_PINCTRL_TEGRA_XUSB=yCONFIG_PINCTRL_UNIPHIER=y
# CONFIG_PINCTRL_UNIPHIER_LD4 is not set
# CONFIG_PINCTRL_UNIPHIER_PRO4 is not set
# CONFIG_PINCTRL_UNIPHIER_SLD8 is not set
# CONFIG_PINCTRL_UNIPHIER_PRO5 is not set
# CONFIG_PINCTRL_UNIPHIER_PXS2 is not set
# CONFIG_PINCTRL_UNIPHIER_LD6B is not setCONFIG_PINCTRL_UNIPHIER_LD11=yCONFIG_PINCTRL_UNIPHIER_LD20=yCONFIG_PINCTRL_UNIPHIER_PXS3=yCONFIG_PINCTRL_UNIPHIER_NX1=yCONFIG_PINCTRL_VISCONTI=yCONFIG_PINCTRL_TMPV7700=yCONFIG_GPIOLIB=yCONFIG_GPIOLIB_FASTPATH_LIMIT=512CONFIG_OF_GPIO=yCONFIG_GPIO_ACPI=yCONFIG_GPIOLIB_IRQCHIP=y
# CONFIG_DEBUG_GPIO is not set
# CONFIG_GPIO_SYSFS is not setCONFIG_GPIO_CDEV=yCONFIG_GPIO_CDEV_V1=yCONFIG_GPIO_GENERIC=yCONFIG_GPIO_REGMAP=y
#
# Memory mapped GPIO drivers
#
# CONFIG_GPIO_74XX_MMIO is not setCONFIG_GPIO_ALTERA=y
# CONFIG_GPIO_AMDPT is not setCONFIG_GPIO_RASPBERRYPI_EXP=yCONFIG_GPIO_BCM_XGS_IPROC=yCONFIG_GPIO_BLZP1600=yCONFIG_GPIO_BRCMSTB=y
# CONFIG_GPIO_CADENCE is not setCONFIG_GPIO_DAVINCI=yCONFIG_GPIO_DWAPB=y
# CONFIG_GPIO_EIC_SPRD is not setCONFIG_GPIO_EN7523=y
# CONFIG_GPIO_FTGPIO010 is not setCONFIG_GPIO_GENERIC_PLATFORM=y
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_HISI is not set
# CONFIG_GPIO_HLWD is not setCONFIG_GPIO_IMX_SCU=y
# CONFIG_GPIO_LOGICVC is not setCONFIG_GPIO_MB86S7X=yCONFIG_GPIO_MPC8XXX=yCONFIG_GPIO_MVEBU=yCONFIG_GPIO_MXC=y
# CONFIG_GPIO_NPCM_SGPIO is not setCONFIG_GPIO_PL061=y
# CONFIG_GPIO_POLARFIRE_SOC is not setCONFIG_GPIO_RCAR=yCONFIG_GPIO_ROCKCHIP=yCONFIG_GPIO_RTD=y
# CONFIG_GPIO_SIFIVE is not set
# CONFIG_GPIO_SPRD is not setCONFIG_GPIO_SYSCON=yCONFIG_GPIO_TEGRA=yCONFIG_GPIO_TEGRA186=y
# CONFIG_GPIO_THUNDERX is not setCONFIG_GPIO_UNIPHIER=yCONFIG_GPIO_VF610=yCONFIG_GPIO_VISCONTI=yCONFIG_GPIO_WCD934X=yCONFIG_GPIO_XGENE=yCONFIG_GPIO_XGENE_SB=y
# CONFIG_GPIO_XILINX is not set
# CONFIG_GPIO_XLP is not set
# CONFIG_GPIO_ZYNQ is not setCONFIG_GPIO_ZYNQMP_MODEPIN=y
# CONFIG_GPIO_AMD_FCH is not set
# end of Memory mapped GPIO drivers
#
# I2C GPIO expanders
#
# CONFIG_GPIO_ADNP is not set
# CONFIG_GPIO_FXL6408 is not set
# CONFIG_GPIO_DS4520 is not set
# CONFIG_GPIO_GW_PLD is not set
# CONFIG_GPIO_MAX7300 is not setCONFIG_GPIO_MAX732X=y
# CONFIG_GPIO_MAX732X_IRQ is not setCONFIG_GPIO_PCA953X=yCONFIG_GPIO_PCA953X_IRQ=y
# CONFIG_GPIO_PCA9570 is not setCONFIG_GPIO_PCF857X=y
# CONFIG_GPIO_TPIC2810 is not set
# end of I2C GPIO expanders
#
# MFD GPIO expanders
#CONFIG_GPIO_ADP5585=yCONFIG_GPIO_BD9571MWV=yCONFIG_GPIO_DLN2=yCONFIG_GPIO_LJCA=y
# CONFIG_GPIO_LP873X is not setCONFIG_GPIO_MAX77620=yCONFIG_GPIO_SL28CPLD=yCONFIG_GPIO_TPS65219=y
# CONFIG_GPIO_TWL4030 is not set
# CONFIG_GPIO_WM8994 is not set
# end of MFD GPIO expanders
#
# PCI GPIO expanders
#
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_PCI_IDIO_16 is not set
# CONFIG_GPIO_PCIE_IDIO_24 is not set
# CONFIG_GPIO_RDC321X is not set
# end of PCI GPIO expanders
#
# SPI GPIO expanders
#
# CONFIG_GPIO_74X164 is not set
# CONFIG_GPIO_MAX3191X is not set
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MC33880 is not set
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_XRA1403 is not set
# end of SPI GPIO expanders
#
# USB GPIO expanders
#CONFIG_GPIO_VIPERBOARD=y
# CONFIG_GPIO_MPSSE is not set
# end of USB GPIO expanders
#
# Virtual GPIO drivers
#CONFIG_GPIO_AGGREGATOR=y
# CONFIG_GPIO_LATCH is not set
# CONFIG_GPIO_MOCKUP is not set
# CONFIG_GPIO_VIRTIO is not set
# CONFIG_GPIO_SIM is not set
# end of Virtual GPIO drivers
#
# GPIO Debugging utilities
#
# CONFIG_GPIO_SLOPPY_LOGIC_ANALYZER is not set
# CONFIG_GPIO_VIRTUSER is not set
# end of GPIO Debugging utilities
CONFIG_DEV_SYNC_PROBE=y
# CONFIG_W1 is not setCONFIG_POWER_RESET=y CONFIG_POWER_RESET_BRCMSTB=y
# CONFIG_POWER_RESET_GPIO is not set
# CONFIG_POWER_RESET_GPIO_RESTART is not set
# CONFIG_POWER_RESET_HISI is not set
# CONFIG_POWER_RESET_LINKSTATION is not set CONFIG_POWER_RESET_MSM=y CONFIG_POWER_RESET_QCOM_PON=y
# CONFIG_POWER_RESET_OCELOT_RESET is not set
# CONFIG_POWER_RESET_ODROID_GO_ULTRA_POWEROFF is not set # CONFIG_POWER_RESET_LTC2952 is not set
# CONFIG_POWER_RESET_MT6323 is not set
# CONFIG_POWER_RESET_REGULATOR is not set
# CONFIG_POWER_RESET_RESTART is not set
# CONFIG_POWER_RESET_TORADEX_EC is not set
# CONFIG_POWER_RESET_VEXPRESS is not set CONFIG_POWER_RESET_XGENE=y CONFIG_POWER_RESET_SYSCON=y CONFIG_POWER_RESET_SYSCON_POWEROFF=y CONFIG_REBOOT_MODE=y CONFIG_SYSCON_REBOOT_MODE=y CONFIG_NVMEM_REBOOT_MODE=y CONFIG_POWER_SEQUENCING=y CONFIG_POWER_SEQUENCING_QCOM_WCN=y CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set CONFIG_POWER_SUPPLY_HWMON=y
# CONFIG_GENERIC_ADC_BATTERY is not set
# 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_QCOM_BATTMGR=y
# CONFIG_BATTERY_SAMSUNG_SDI is not set CONFIG_BATTERY_SBS=y
# CONFIG_CHARGER_SBS is not set
# CONFIG_MANAGER_SBS is not set CONFIG_BATTERY_BQ27XXX=y CONFIG_BATTERY_BQ27XXX_I2C=y
# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set # CONFIG_AXP20X_POWER is not set
# CONFIG_BATTERY_MAX17040 is not set CONFIG_BATTERY_MAX17042=y
# CONFIG_BATTERY_MAX1720X is not set CONFIG_CHARGER_ISP1704=y
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_TWL4030 is not set
# CONFIG_CHARGER_TWL6030 is not set
# CONFIG_CHARGER_LP8727 is not set
# CONFIG_CHARGER_GPIO is not set
# CONFIG_CHARGER_MANAGER is not set
# CONFIG_CHARGER_LT3651 is not set
# CONFIG_CHARGER_LTC4162L is not set
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_MAX77976 is not set
# CONFIG_CHARGER_MAX8971 is not set CONFIG_CHARGER_MT6360=y
# CONFIG_CHARGER_MT6370 is not set
# CONFIG_CHARGER_QCOM_SMBB is not set
# CONFIG_BATTERY_PM8916_BMS_VM is not set
# CONFIG_CHARGER_PM8916_LBC is not set
# CONFIG_CHARGER_BQ2415X is not set CONFIG_CHARGER_BQ24190=y
# CONFIG_CHARGER_BQ24257 is not set
# CONFIG_CHARGER_BQ24735 is not set
# CONFIG_CHARGER_BQ2515X is not set CONFIG_CHARGER_BQ25890=y CONFIG_CHARGER_BQ25980=y
# CONFIG_CHARGER_BQ256XX is not set CONFIG_CHARGER_RK817=y
# CONFIG_CHARGER_SMB347 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
# CONFIG_BATTERY_GOLDFISH is not set
# CONFIG_BATTERY_RT5033 is not set
# CONFIG_CHARGER_RT9455 is not set
# CONFIG_CHARGER_RT9467 is not set
# CONFIG_CHARGER_RT9471 is not set
# CONFIG_FUEL_GAUGE_STC3117 is not set
# CONFIG_CHARGER_UCS1002 is not set
# CONFIG_CHARGER_BD99954 is not set
# CONFIG_BATTERY_SURFACE is not set
# CONFIG_CHARGER_SURFACE is not set
# CONFIG_BATTERY_UG3105 is not set
# CONFIG_CHARGER_QCOM_SMB2 is not set
# CONFIG_FUEL_GAUGE_MM8013 is not set CONFIG_HWMON=y
# CONFIG_HWMON_DEBUG_CHIP is not set
#
# Native drivers
#
# CONFIG_SENSORS_AD7314 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_ADT7310 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 setCONFIG_SENSORS_AQUACOMPUTER_D5NEXT=y
# 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 setCONFIG_SENSORS_ARM_SCMI=yCONFIG_SENSORS_ARM_SCPI=y
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_CHIPCAP2 is not setCONFIG_SENSORS_CORSAIR_CPRO=yCONFIG_SENSORS_CORSAIR_PSU=y
# CONFIG_SENSORS_DRIVETEMP is not set
# CONFIG_SENSORS_DS620 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_SPARX5 is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
# CONFIG_SENSORS_FTSTEUTATES is not setCONFIG_SENSORS_GIGABYTE_WATERFORCE=y
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
# CONFIG_SENSORS_G760A is not set
# CONFIG_SENSORS_G762 is not setCONFIG_SENSORS_GPIO_FAN=y
# CONFIG_SENSORS_HIH6130 is not set
# CONFIG_SENSORS_HS3001 is not set
# CONFIG_SENSORS_HTU31 is not set
# CONFIG_SENSORS_IBMAEM is not set
# CONFIG_SENSORS_IBMPEX is not set
# CONFIG_SENSORS_IIO_HWMON is not set
# CONFIG_SENSORS_ISL28022 is not set
# CONFIG_SENSORS_IT87 is not setCONFIG_SENSORS_JC42=yCONFIG_SENSORS_POWERZ=y
# CONFIG_SENSORS_POWR1220 is not set
# CONFIG_SENSORS_LINEAGE is not set
# CONFIG_SENSORS_LTC2945 is not set
# CONFIG_SENSORS_LTC2947_I2C is not set
# CONFIG_SENSORS_LTC2947_SPI is not set
# CONFIG_SENSORS_LTC2990 is not set
# CONFIG_SENSORS_LTC2991 is not set
# CONFIG_SENSORS_LTC2992 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_MAX1111 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_MAX31722 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_TC654 is not set
# CONFIG_SENSORS_TPS23861 is not set
# CONFIG_SENSORS_MR75203 is not set
# CONFIG_SENSORS_ADCXX is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM70 is not set
# CONFIG_SENSORS_LM73 is not setCONFIG_SENSORS_LM75=y
# 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 setCONFIG_SENSORS_LM90=y
# 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_NTC_THERMISTOR 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 setCONFIG_SENSORS_NZXT_KRAKEN2=y
# CONFIG_SENSORS_NZXT_KRAKEN3 is not setCONFIG_SENSORS_NZXT_SMART2=y
# CONFIG_SENSORS_OCC_P8_I2C is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_PMBUS is not set
# CONFIG_SENSORS_PT5161L is not setCONFIG_SENSORS_PWM_FAN=yCONFIG_SENSORS_RASPBERRYPI_HWMON=yCONFIG_SENSORS_SL28CPLD=y
# CONFIG_SENSORS_SBTSI is not set
# CONFIG_SENSORS_SHT15 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_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_SURFACE_FAN is not set
# CONFIG_SENSORS_SURFACE_TEMP is not set
# CONFIG_SENSORS_ADC128D818 is not set
# CONFIG_SENSORS_ADS7828 is not set
# CONFIG_SENSORS_ADS7871 is not set
# CONFIG_SENSORS_AMC6821 is not set
# CONFIG_SENSORS_INA209 is not setCONFIG_SENSORS_INA2XX=y
# CONFIG_SENSORS_INA238 is not setCONFIG_SENSORS_INA3221=y
# 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_VEXPRESS 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
#
# ACPI drivers
#
# CONFIG_SENSORS_ACPI_POWER is not set CONFIG_THERMAL=yCONFIG_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=yCONFIG_THERMAL_OF=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_DEFAULT_GOV_POWER_ALLOCATOR 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_THERMAL_GOV_POWER_ALLOCATOR=y CONFIG_CPU_THERMAL=yCONFIG_CPU_FREQ_THERMAL=y CONFIG_DEVFREQ_THERMAL=y
# CONFIG_PCIE_THERMAL is not set CONFIG_THERMAL_EMULATION=y
# CONFIG_THERMAL_MMIO is not set CONFIG_HISI_THERMAL=y
# CONFIG_IMX_THERMAL is not set CONFIG_IMX_SC_THERMAL=y CONFIG_IMX8MM_THERMAL=yCONFIG_K3_THERMAL=y
# CONFIG_MAX77620_THERMAL is not set CONFIG_QORIQ_THERMAL=y
# CONFIG_AIROHA_THERMAL is not set CONFIG_SUN8I_THERMAL=y CONFIG_ROCKCHIP_THERMAL=y CONFIG_ARMADA_THERMAL=y
# CONFIG_DA9062_THERMAL is not set
#
# Mediatek thermal drivers
#CONFIG_MTK_THERMAL=y
# CONFIG_MTK_SOC_THERMAL is not setCONFIG_MTK_LVTS_THERMAL=y
# CONFIG_MTK_LVTS_THERMAL_DEBUGFS is not set
# end of Mediatek thermal drivers
CONFIG_AMLOGIC_THERMAL=y
#
# Broadcom thermal drivers
#CONFIG_BCM2711_THERMAL=yCONFIG_BCM2835_THERMAL=yCONFIG_BRCMSTB_THERMAL=yCONFIG_BCM_NS_THERMAL=yCONFIG_BCM_SR_THERMAL=y
# end of Broadcom thermal drivers
#
# Samsung thermal drivers
#CONFIG_EXYNOS_THERMAL=y
# end of Samsung thermal drivers
#
# STMicroelectronics thermal drivers
#
# CONFIG_ST_THERMAL is not set
# CONFIG_ST_THERMAL_MEMMAP is not set
# end of STMicroelectronics thermal drivers
CONFIG_RCAR_THERMAL=yCONFIG_RCAR_GEN3_THERMAL=yCONFIG_RZG2L_THERMAL=y
#
# NVIDIA Tegra thermal drivers
#CONFIG_TEGRA_SOCTHERM=yCONFIG_TEGRA_BPMP_THERMAL=y
# end of NVIDIA Tegra thermal drivers
CONFIG_GENERIC_ADC_THERMAL=y
#
# Qualcomm thermal drivers
#CONFIG_QCOM_TSENS=yCONFIG_QCOM_SPMI_ADC_TM5=yCONFIG_QCOM_SPMI_TEMP_ALARM=yCONFIG_QCOM_LMH=y
# end of Qualcomm thermal drivers
CONFIG_UNIPHIER_THERMAL=y
# CONFIG_SPRD_THERMAL is not setCONFIG_KHADAS_MCU_FAN_THERMAL=yCONFIG_WATCHDOG=yCONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not setCONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=yCONFIG_WATCHDOG_OPEN_TIMEOUT=0
# CONFIG_WATCHDOG_SYSFS is not set
# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set
#
# Watchdog Pretimeout Governors
#
# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
#
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
# CONFIG_DA9062_WATCHDOG is not set
# CONFIG_GPIO_WATCHDOG is not set
# CONFIG_WDAT_WDT is not set
# CONFIG_XILINX_WATCHDOG is not set
# CONFIG_XILINX_WINDOW_WATCHDOG is not set
# CONFIG_ZIIRAVE_WATCHDOG is not setCONFIG_SL28CPLD_WATCHDOG=y
# CONFIG_AIROHA_WATCHDOG is not setCONFIG_ARM_SP805_WATCHDOG=yCONFIG_ARM_SBSA_WATCHDOG=y
# CONFIG_ARMADA_37XX_WATCHDOG is not set
# CONFIG_CADENCE_WATCHDOG is not setCONFIG_S3C2410_WATCHDOG=yCONFIG_DW_WATCHDOG=yCONFIG_K3_RTI_WATCHDOG=yCONFIG_SUNXI_WATCHDOG=yCONFIG_NPCM7XX_WATCHDOG=y
# CONFIG_TWL4030_WATCHDOG is not set
# CONFIG_MAX63XX_WATCHDOG is not set
# CONFIG_MAX77620_WATCHDOG is not setCONFIG_IMX2_WDT=yCONFIG_IMX_SC_WDT=yCONFIG_IMX7ULP_WDT=y
# CONFIG_S32G_WDT is not set
# CONFIG_RETU_WATCHDOG is not set
# CONFIG_TEGRA_WATCHDOG is not setCONFIG_QCOM_WDT=yCONFIG_MESON_GXBB_WATCHDOG=yCONFIG_MESON_WATCHDOG=yCONFIG_MEDIATEK_WATCHDOG=yCONFIG_ARM_SMC_WATCHDOG=yCONFIG_RENESAS_WDT=y
# CONFIG_RENESAS_RZAWDT is not set
# CONFIG_RENESAS_RZN1WDT is not setCONFIG_RENESAS_RZG2LWDT=yCONFIG_RENESAS_RZV2HWDT=yCONFIG_STM32_WATCHDOG=yCONFIG_UNIPHIER_WATCHDOG=yCONFIG_RTD119X_WATCHDOG=y
# CONFIG_SPRD_WATCHDOG is not setCONFIG_PM8916_WATCHDOG=y
# CONFIG_VISCONTI_WATCHDOG is not set
# CONFIG_APPLE_WATCHDOG is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_I6300ESB_WDT is not set
# CONFIG_HP_WATCHDOG is not set
# CONFIG_NIC7018_WDT is not setCONFIG_MARVELL_GTI_WDT=yCONFIG_BCM2835_WDT=yCONFIG_BCM7038_WDT=y
# CONFIG_MEN_A21_WDT is not set
#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set
#
# USB-based Watchdog Cards
#CONFIG_USBPCWATCHDOG=y
# CONFIG_KEEMBAY_WATCHDOG is not setCONFIG_SSB_POSSIBLE=yCONFIG_SSB=yCONFIG_SSB_PCIHOST_POSSIBLE=y
# CONFIG_SSB_PCIHOST is not setCONFIG_SSB_PCMCIAHOST_POSSIBLE=y
# CONFIG_SSB_PCMCIAHOST is not setCONFIG_SSB_SDIOHOST_POSSIBLE=y
# CONFIG_SSB_SDIOHOST is not set
# CONFIG_SSB_DRIVER_GPIO is not setCONFIG_BCMA_POSSIBLE=yCONFIG_BCMA=yCONFIG_BCMA_HOST_PCI_POSSIBLE=y
# CONFIG_BCMA_HOST_PCI is not set
# CONFIG_BCMA_HOST_SOC is not set
# CONFIG_BCMA_DRIVER_PCI is not set
# CONFIG_BCMA_DRIVER_GMAC_CMN is not set
# CONFIG_BCMA_DRIVER_GPIO is not set
# CONFIG_BCMA_DEBUG is not set
#
# Multifunction device drivers
#CONFIG_MFD_CORE=yCONFIG_MFD_ADP5585=y
# CONFIG_MFD_ALTERA_A10SR is not setCONFIG_MFD_ALTERA_SYSMGR=y
# CONFIG_MFD_ACT8945A is not set
# CONFIG_MFD_SUN4I_GPADC is not set
# CONFIG_MFD_AS3711 is not set
# CONFIG_MFD_SMPRO is not set
# CONFIG_MFD_AS3722 is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_AAT2870_CORE is not set
# CONFIG_MFD_ATMEL_FLEXCOM is not set
# CONFIG_MFD_ATMEL_HLCDC is not set
# CONFIG_MFD_BCM590XX is not setCONFIG_MFD_BD9571MWV=y
# CONFIG_MFD_AC100 is not setCONFIG_MFD_AXP20X=yCONFIG_MFD_AXP20X_I2C=yCONFIG_MFD_AXP20X_RSB=y
# CONFIG_MFD_CS42L43_I2C is not set
# CONFIG_MFD_CS42L43_SDW is not set
# CONFIG_MFD_MADERA is not set
# CONFIG_MFD_MAX5970 is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_DA9052_SPI is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9055 is not setCONFIG_MFD_DA9062=y
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not setCONFIG_MFD_DLN2=yCONFIG_MFD_EXYNOS_LPASS=y
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_MC13XXX_SPI is not set
# CONFIG_MFD_MC13XXX_I2C is not set
# CONFIG_MFD_MP2629 is not setCONFIG_MFD_HI6421_PMIC=y
# CONFIG_MFD_HI6421_SPMI is not setCONFIG_MFD_HI655X_PMIC=yCONFIG_LPC_ICH=y
# CONFIG_LPC_SCH 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_88PM886_PMIC is not set
# CONFIG_MFD_MAX14577 is not set
# CONFIG_MFD_MAX77541 is not setCONFIG_MFD_MAX77620=y
# CONFIG_MFD_MAX77650 is not set
# CONFIG_MFD_MAX77686 is not set
# CONFIG_MFD_MAX77693 is not set
# CONFIG_MFD_MAX77705 is not set
# CONFIG_MFD_MAX77714 is not set
# CONFIG_MFD_MAX77759 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 setCONFIG_MFD_MT6360=yCONFIG_MFD_MT6370=yCONFIG_MFD_MT6397=y
# CONFIG_MFD_MENF21BMC is not set
# CONFIG_MFD_OCELOT is not set
# CONFIG_EZX_PCAP is not set
# CONFIG_MFD_CPCAP is not setCONFIG_MFD_VIPERBOARD=y
# CONFIG_MFD_NTXEC is not setCONFIG_MFD_RETU=y
# CONFIG_MFD_QCOM_RPM is not setCONFIG_MFD_SPMI_PMIC=y
# 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 setCONFIG_MFD_RK8XX=yCONFIG_MFD_RK8XX_I2C=yCONFIG_MFD_RK8XX_SPI=y
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_SEC_I2C is not set
# CONFIG_MFD_SI476X_CORE is not setCONFIG_MFD_SIMPLE_MFD_I2C=yCONFIG_MFD_SL28CPLD=y
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_SKY81452 is not set
# CONFIG_MFD_SC27XX_PMIC is not setCONFIG_RZ_MTU3=y
# CONFIG_MFD_STMPE is not set
# CONFIG_MFD_SUN6I_PRCM is not setCONFIG_MFD_SYSCON=yCONFIG_MFD_TI_AM335X_TSCADC=y
# CONFIG_MFD_LP3943 is not set
# CONFIG_MFD_LP8788 is not set
# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_TPS6105X is not set
# CONFIG_TPS65010 is not set
# CONFIG_TPS6507X is not set
# CONFIG_MFD_TPS65086 is not set
# CONFIG_MFD_TPS65090 is not set
# CONFIG_MFD_TPS65217 is not setCONFIG_MFD_TI_LP873X=y
# CONFIG_MFD_TI_LP87565 is not set
# CONFIG_MFD_TPS65218 is not setCONFIG_MFD_TPS65219=y
# CONFIG_MFD_TPS6586X is not set
# CONFIG_MFD_TPS65910 is not set
# CONFIG_MFD_TPS65912_I2C is not set
# CONFIG_MFD_TPS65912_SPI is not setCONFIG_MFD_TPS6594=yCONFIG_MFD_TPS6594_I2C=y
# CONFIG_MFD_TPS6594_SPI is not setCONFIG_TWL4030_CORE=y
# CONFIG_MFD_TWL4030_AUDIO is not set
# CONFIG_TWL6040_CORE is not set
# CONFIG_MFD_WL1273_CORE is not set
# CONFIG_MFD_LM3533 is not set
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TQMX86 is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_MFD_LOCHNAGAR is not set
# CONFIG_MFD_ARIZONA_I2C is not set
# CONFIG_MFD_ARIZONA_SPI is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM831X_I2C is not set
# CONFIG_MFD_WM831X_SPI is not set
# CONFIG_MFD_WM8350_I2C is not setCONFIG_MFD_WM8994=yCONFIG_MFD_ROHM_BD718XX=y
# CONFIG_MFD_ROHM_BD71828 is not set
# CONFIG_MFD_ROHM_BD957XMUF is not set
# CONFIG_MFD_ROHM_BD96801 is not set
# CONFIG_MFD_STM32_LPTIMER is not set
# CONFIG_MFD_STM32_TIMERS is not set
# CONFIG_MFD_STPMIC1 is not set
# CONFIG_MFD_STMFX is not setCONFIG_MFD_WCD934X=y
# CONFIG_MFD_ATC260X_I2C is not setCONFIG_MFD_KHADAS_MCU=y
# CONFIG_MFD_QCOM_PM8008 is not set
# CONFIG_MFD_CS40L50_I2C is not set
# CONFIG_MFD_CS40L50_SPI is not setCONFIG_MFD_VEXPRESS_SYSREG=y
# CONFIG_RAVE_SP_CORE is not set
# CONFIG_MFD_INTEL_M10_BMC_SPI is not set
# CONFIG_MFD_QNAP_MCU is not set
# CONFIG_MFD_RSMU_I2C is not set
# CONFIG_MFD_RSMU_SPI is not set
# end of Multifunction device drivers
CONFIG_REGULATOR=y
# CONFIG_REGULATOR_DEBUG is not set CONFIG_REGULATOR_FIXED_VOLTAGE=y
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
# CONFIG_REGULATOR_NETLINK_EVENTS is not set
# CONFIG_REGULATOR_88PG86X is not set
# CONFIG_REGULATOR_ACT8865 is not set
# CONFIG_REGULATOR_AD5398 is not set
# CONFIG_REGULATOR_ADP5055 is not set
# CONFIG_REGULATOR_ANATOP is not set CONFIG_REGULATOR_ARM_SCMI=y
# CONFIG_REGULATOR_AW37503 is not set CONFIG_REGULATOR_AXP20X=y CONFIG_REGULATOR_BD718XX=y CONFIG_REGULATOR_BD9571MWV=y
# CONFIG_REGULATOR_DA9062 is not set
# CONFIG_REGULATOR_DA9121 is not set
# CONFIG_REGULATOR_DA9210 is not set CONFIG_REGULATOR_DA9211=y CONFIG_REGULATOR_FAN53555=y
# CONFIG_REGULATOR_FAN53880 is not set CONFIG_REGULATOR_GPIO=y
# CONFIG_REGULATOR_HI6421 is not set CONFIG_REGULATOR_HI6421V530=y CONFIG_REGULATOR_HI655X=y
# CONFIG_REGULATOR_ISL9305 is not set
# CONFIG_REGULATOR_ISL6271A is not set
# CONFIG_REGULATOR_LP3971 is not set
# CONFIG_REGULATOR_LP3972 is not set
# CONFIG_REGULATOR_LP872X is not set CONFIG_REGULATOR_LP873X=y
# CONFIG_REGULATOR_LP8755 is not set
# CONFIG_REGULATOR_LTC3589 is not set
# CONFIG_REGULATOR_LTC3676 is not set
# CONFIG_REGULATOR_MAX1586 is not set
# CONFIG_REGULATOR_MAX77503 is not set CONFIG_REGULATOR_MAX77620=y
# CONFIG_REGULATOR_MAX77857 is not set
# CONFIG_REGULATOR_MAX8649 is not set
# CONFIG_REGULATOR_MAX8660 is not set
# CONFIG_REGULATOR_MAX8893 is not set
# CONFIG_REGULATOR_MAX8952 is not set CONFIG_REGULATOR_MAX8973=y
# CONFIG_REGULATOR_MAX20086 is not set CONFIG_REGULATOR_MAX20411=y
# CONFIG_REGULATOR_MAX77826 is not set
# CONFIG_REGULATOR_MCP16502 is not set
# CONFIG_REGULATOR_MP5416 is not set CONFIG_REGULATOR_MP8859=y
# CONFIG_REGULATOR_MP886X is not set
# CONFIG_REGULATOR_MPQ7920 is not set
# CONFIG_REGULATOR_MT6311 is not set CONFIG_REGULATOR_MT6315=y
# CONFIG_REGULATOR_MT6323 is not set
# CONFIG_REGULATOR_MT6331 is not set
# CONFIG_REGULATOR_MT6332 is not set CONFIG_REGULATOR_MT6357=y CONFIG_REGULATOR_MT6358=y CONFIG_REGULATOR_MT6359=y CONFIG_REGULATOR_MT6360=y
# CONFIG_REGULATOR_MT6370 is not set
# CONFIG_REGULATOR_MT6380 is not set CONFIG_REGULATOR_MT6397=y CONFIG_REGULATOR_PCA9450=y
# CONFIG_REGULATOR_PF9453 is not set CONFIG_REGULATOR_PF8X00=y CONFIG_REGULATOR_PFUZE100=y
# CONFIG_REGULATOR_PV88060 is not set
# CONFIG_REGULATOR_PV88080 is not set
# CONFIG_REGULATOR_PV88090 is not set CONFIG_REGULATOR_PWM=y CONFIG_REGULATOR_QCOM_REFGEN=y CONFIG_REGULATOR_QCOM_RPMH=y CONFIG_REGULATOR_QCOM_SMD_RPM=y CONFIG_REGULATOR_QCOM_SPMI=y CONFIG_REGULATOR_QCOM_USB_VBUS=y CONFIG_REGULATOR_RAA215300=y
# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set CONFIG_REGULATOR_RK808=yCONFIG_REGULATOR_ROHM=y
# CONFIG_REGULATOR_RT4801 is not set
# CONFIG_REGULATOR_RT4803 is not set
# CONFIG_REGULATOR_RT5190A is not set
# CONFIG_REGULATOR_RT5739 is not set
# CONFIG_REGULATOR_RT5759 is not set
# CONFIG_REGULATOR_RT6160 is not set
# CONFIG_REGULATOR_RT6190 is not set
# CONFIG_REGULATOR_RT6245 is not set
# CONFIG_REGULATOR_RTQ2134 is not set
# CONFIG_REGULATOR_RTMV20 is not set
# CONFIG_REGULATOR_RTQ6752 is not set
# CONFIG_REGULATOR_RTQ2208 is not set
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_STM32_BOOSTER is not set
# CONFIG_REGULATOR_STM32_VREFBUF is not set
# CONFIG_REGULATOR_STM32_PWR is not set CONFIG_REGULATOR_SUN20I=y
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_SY8827N is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS6286X is not set
# CONFIG_REGULATOR_TPS6287X is not set
# CONFIG_REGULATOR_TPS65023 is not set
# CONFIG_REGULATOR_TPS6507X is not set CONFIG_REGULATOR_TPS65132=y CONFIG_REGULATOR_TPS65219=y CONFIG_REGULATOR_TPS6594=y
# CONFIG_REGULATOR_TPS6524X is not set CONFIG_REGULATOR_TWL4030=y CONFIG_REGULATOR_UNIPHIER=y CONFIG_REGULATOR_RZG2L_VBCTRL=y CONFIG_REGULATOR_VCTRL=y
# CONFIG_REGULATOR_VEXPRESS is not set
# CONFIG_REGULATOR_VQMMC_IPQ4019 is not set
# CONFIG_REGULATOR_WM8994 is not set
# CONFIG_REGULATOR_QCOM_LABIBB is not set CONFIG_RC_CORE=y
# CONFIG_LIRC is not setCONFIG_RC_MAP=yCONFIG_RC_DECODERS=y
# CONFIG_IR_IMON_DECODER is not set
# CONFIG_IR_JVC_DECODER is not set
# CONFIG_IR_MCE_KBD_DECODER is not set
# CONFIG_IR_NEC_DECODER is not set
# CONFIG_IR_RC5_DECODER is not set
# CONFIG_IR_RC6_DECODER is not set
# CONFIG_IR_RCMM_DECODER is not set
# CONFIG_IR_SANYO_DECODER is not set
# CONFIG_IR_SHARP_DECODER is not set
# CONFIG_IR_SONY_DECODER is not set
# CONFIG_IR_XMP_DECODER is not set CONFIG_RC_DEVICES=y
# CONFIG_IR_ENE is not set
# CONFIG_IR_FINTEK is not setCONFIG_IR_GPIO_CIR=y
# CONFIG_IR_HIX5HD2 is not set CONFIG_IR_IGORPLUGUSB=yCONFIG_IR_IGUANA=yCONFIG_IR_IMON=yCONFIG_IR_IMON_RAW=y
# CONFIG_IR_ITE_CIR is not setCONFIG_IR_MCEUSB=yCONFIG_IR_MESON=y
# CONFIG_IR_MESON_TX is not set
# CONFIG_IR_MTK is not set
# CONFIG_IR_NUVOTON is not setCONFIG_IR_REDRAT3=y
# CONFIG_IR_SERIAL is not set CONFIG_IR_STREAMZAP=yCONFIG_IR_SUNXI=yCONFIG_IR_TOY=yCONFIG_IR_TTUSBIR=yCONFIG_RC_ATI_REMOTE=y
# CONFIG_RC_LOOPBACK is not set CONFIG_RC_XBOX_DVD=yCONFIG_CEC_CORE=yCONFIG_CEC_NOTIFIER=y
#
# CEC support
#
# CONFIG_MEDIA_CEC_RC is not setCONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_CEC_CH7322 is not setCONFIG_CEC_NXP_TDA9950=y
# CONFIG_CEC_MESON_AO is not setCONFIG_CEC_MESON_G12A_AO=y
# CONFIG_CEC_GPIO is not set
# CONFIG_CEC_SAMSUNG_S5P is not set
# CONFIG_CEC_STM32 is not set
# CONFIG_CEC_TEGRA is not set
# CONFIG_USB_EXTRON_DA_HD_4K_PLUS_CEC is not setCONFIG_USB_PULSE8_CEC=yCONFIG_USB_RAINSHADOW_CEC=y
# end of CEC support
CONFIG_MEDIA_SUPPORT=yCONFIG_MEDIA_SUPPORT_FILTER=y
# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
#
# Media device types
#CONFIG_MEDIA_CAMERA_SUPPORT=yCONFIG_MEDIA_ANALOG_TV_SUPPORT=yCONFIG_MEDIA_DIGITAL_TV_SUPPORT=yCONFIG_MEDIA_RADIO_SUPPORT=yCONFIG_MEDIA_SDR_SUPPORT=yCONFIG_MEDIA_PLATFORM_SUPPORT=yCONFIG_MEDIA_TEST_SUPPORT=y
# end of Media device types
CONFIG_VIDEO_DEV=yCONFIG_MEDIA_CONTROLLER=yCONFIG_DVB_CORE=y
#
# Video4Linux options
#CONFIG_VIDEO_V4L2_I2C=yCONFIG_VIDEO_V4L2_SUBDEV_API=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not setCONFIG_VIDEO_TUNER=yCONFIG_V4L2_JPEG_HELPER=yCONFIG_V4L2_H264=yCONFIG_V4L2_VP9=yCONFIG_V4L2_MEM2MEM_DEV=yCONFIG_V4L2_FWNODE=yCONFIG_V4L2_ASYNC=yCONFIG_V4L2_CCI=yCONFIG_V4L2_CCI_I2C=y
# end of Video4Linux options
#
# Media controller options
#CONFIG_MEDIA_CONTROLLER_DVB=y
# end of Media controller options
#
# Digital TV options
#
# CONFIG_DVB_MMAP is not set
# CONFIG_DVB_NET is not setCONFIG_DVB_MAX_ADAPTERS=16CONFIG_DVB_DYNAMIC_MINORS=y
# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set
# CONFIG_DVB_ULE_DEBUG is not set
# end of Digital TV options
#
# Media drivers
#
#
# Drivers filtered as selected at 'Filter media drivers' #
#
# Media drivers
#CONFIG_MEDIA_USB_SUPPORT=y
#
# Webcam devices
#CONFIG_USB_GSPCA=yCONFIG_USB_GSPCA_BENQ=yCONFIG_USB_GSPCA_CONEX=yCONFIG_USB_GSPCA_CPIA1=yCONFIG_USB_GSPCA_DTCS033=yCONFIG_USB_GSPCA_ETOMS=yCONFIG_USB_GSPCA_FINEPIX=yCONFIG_USB_GSPCA_JEILINJ=yCONFIG_USB_GSPCA_JL2005BCD=yCONFIG_USB_GSPCA_KINECT=yCONFIG_USB_GSPCA_KONICA=yCONFIG_USB_GSPCA_MARS=yCONFIG_USB_GSPCA_MR97310A=yCONFIG_USB_GSPCA_NW80X=yCONFIG_USB_GSPCA_OV519=yCONFIG_USB_GSPCA_OV534=yCONFIG_USB_GSPCA_OV534_9=yCONFIG_USB_GSPCA_PAC207=yCONFIG_USB_GSPCA_PAC7302=yCONFIG_USB_GSPCA_PAC7311=yCONFIG_USB_GSPCA_SE401=yCONFIG_USB_GSPCA_SN9C2028=yCONFIG_USB_GSPCA_SN9C20X=yCONFIG_USB_GSPCA_SONIXB=yCONFIG_USB_GSPCA_SONIXJ=yCONFIG_USB_GSPCA_SPCA1528=yCONFIG_USB_GSPCA_SPCA500=yCONFIG_USB_GSPCA_SPCA501=yCONFIG_USB_GSPCA_SPCA505=yCONFIG_USB_GSPCA_SPCA506=yCONFIG_USB_GSPCA_SPCA508=yCONFIG_USB_GSPCA_SPCA561=yCONFIG_USB_GSPCA_SQ905=yCONFIG_USB_GSPCA_SQ905C=yCONFIG_USB_GSPCA_SQ930X=yCONFIG_USB_GSPCA_STK014=yCONFIG_USB_GSPCA_STK1135=yCONFIG_USB_GSPCA_STV0680=yCONFIG_USB_GSPCA_SUNPLUS=yCONFIG_USB_GSPCA_T613=yCONFIG_USB_GSPCA_TOPRO=yCONFIG_USB_GSPCA_TOUPTEK=yCONFIG_USB_GSPCA_TV8532=yCONFIG_USB_GSPCA_VC032X=yCONFIG_USB_GSPCA_VICAM=yCONFIG_USB_GSPCA_XIRLINK_CIT=yCONFIG_USB_GSPCA_ZC3XX=yCONFIG_USB_GL860=yCONFIG_USB_M5602=yCONFIG_USB_STV06XX=yCONFIG_USB_PWC=y
# CONFIG_USB_PWC_DEBUG is not setCONFIG_USB_PWC_INPUT_EVDEV=yCONFIG_USB_S2255=yCONFIG_VIDEO_USBTV=yCONFIG_USB_VIDEO_CLASS=yCONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
#
# Analog TV USB devices
#CONFIG_VIDEO_GO7007=yCONFIG_VIDEO_GO7007_USB=yCONFIG_VIDEO_GO7007_LOADER=yCONFIG_VIDEO_GO7007_USB_S2250_BOARD=yCONFIG_VIDEO_HDPVR=yCONFIG_VIDEO_PVRUSB2=yCONFIG_VIDEO_PVRUSB2_SYSFS=yCONFIG_VIDEO_PVRUSB2_DVB=y
# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not setCONFIG_VIDEO_STK1160=y
#
# Analog/digital TV USB devices
#CONFIG_VIDEO_AU0828=yCONFIG_VIDEO_AU0828_V4L2=yCONFIG_VIDEO_AU0828_RC=yCONFIG_VIDEO_CX231XX=yCONFIG_VIDEO_CX231XX_RC=yCONFIG_VIDEO_CX231XX_ALSA=yCONFIG_VIDEO_CX231XX_DVB=y
6,916 lines not shown · raw message
Part of this message is not shown here. View the raw message.
Mark Rutland
maintainerQuoted 69 lines · Yunseong Kim
Quoted 59 lines · Mark Rutland
Quoted 10 lines · Mark Rutland
[ dropping Hemendra, since he doens't need to be spammed with ML traffic ]
Quoted 7 lines · Yunseong Kim
When '
event->hw.idx' was negative in armv8pmu_enable/disable_event().UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:716:25 shift exponent -1 is negative UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:658:13 shift exponent -1 is negativeI can reproduce this locally with:
| #include <stdio.h> | #include <stdlib.h> | #include <unistd.h> | | #include <sys/syscall.h> | #include <sys/types.h> | | #include <linux/perf_event.h> | | static int perf_event_open(struct perf_event_attr *attr, pid_t pid, int cpu, | int group_fd, unsigned long flags) | { | return syscall(__NR_perf_event_open, attr, pid, cpu, group_fd, flags); | } | | struct perf_event_attr attr_parent = { | .type = PERF_TYPE_HARDWARE, | .size = sizeof(attr_parent), | .config = PERF_COUNT_HW_CPU_CYCLES, | .sample_period = 1, | .exclude_kernel = 1, | }; | | struct perf_event_attr attr_child = { | .type = PERF_TYPE_HARDWARE, | .size = sizeof(attr_child), | .config = PERF_COUNT_HW_CPU_CYCLES, | .exclude_kernel = 1, | .disabled = 1, | }; | | int main(int argc, char *argv[]) | { | int parent, child; | | parent = perf_event_open(&attr_parent, 0, -1, -1, 0); | if (parent < 0) { | fprintf(stderr, "Unable to create event: %d\n", parent); | exit (-1); | } | | child = perf_event_open(&attr_child, 0, -1, parent, 0); | if (child < 0) { | fprintf(stderr, "Unable to create event: %d\n", child); | exit (-1);Quoted 9 lines
| } | | for (;;) { | asm("" ::: "memory"); | } | | return 0; | }
Quoted 2 lines
I attempted to reproduce the issue with the code you shared, but it didn’t seem to work on my end. Do I need to run it with multiple processes?
This should only need a single process. On my machine it triggers the PMEV* warnings and the UBSAN splats immediately. I'm using v6.16-rc2 defconfig + CONFIG_UBSAN=y + CONFIG_UBSAN_SHIFT=y, built with GCC 15.1.0, running under KVM on a ThunderX2 host.
Just to rule out the obvious, are you sure you're testing a kernel *without* your proposed fix?
The idea is that the period for the group_leader event is tiny and should cause some throttling, and the for-loop at the end should spin for long enough in userspace that multiple overflows occur and result in throttling. I don't currently see how that couldn't trigger the issue.
FWIW, it also triggers a warning on x86-64 defconfig, e.g.
| # ./perf-disabled-child | perf: interrupt took too long (6615 > 6612), lowering kernel.perf_event_max_sample_rate to 30000 | perf: interrupt took too long (8399 > 8268), lowering kernel.perf_event_max_sample_rate to 23000 | perf: interrupt took too long (10626 > 10498), lowering kernel.perf_event_max_sample_rate to 18000 | perf: interrupt took too long (13313 > 13282), lowering kernel.perf_event_max_sample_rate to 15000 | perf: interrupt took too long (16644 > 16641), lowering kernel.perf_event_max_sample_rate to 12000 | ------------[ cut here ]------------ | WARNING: CPU: 5 PID: 445 at arch/x86/events/core.c:1521 x86_pmu_start+0x72/0x90 | Modules linked in: | CPU: 5 UID: 0 PID: 445 Comm: perf-disabled-c Not tainted 6.16.0-rc7 #1 PREEMPT(full) | Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014 | RIP: 0010:x86_pmu_start+0x72/0x90 | Code: 00 00 00 00 4a 89 5c e5 00 48 81 c5 00 02 00 00 4c 0f ab 65 00 48 89 df e8 fb f9 00 00 48 89 df 5b 5d 41 5c e9 8f a7 1e 00 90 <0f> 0b 90 5b 5d 41 5c e9 c2 4d f8 00 90 0f 0b 90 eb f1 90 0f 0b 90 | RSP: 0000:ffffb79441017d68 EFLAGS: 00010046 | RAX: 0000000000000000 RBX: ffff95f502618468 RCX: 0000000000000020 | RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff95f502618468 | RBP: ffff95f57d154ca0 R08: 0000000000000001 R09: 000000000000000b | R10: 00000000000000c1 R11: 0000000000000001 R12: ffffffffffffffff | R13: 0000000000000001 R14: ffff95f502601330 R15: ffff95f57d15bb00 | FS: 000000001188d300(0000) GS:ffff95f5e3e3f000(0000) knlGS:0000000000000000 | CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 | CR2: 00000000004a2d58 CR3: 0000000004170005 CR4: 0000000000370ef0 | Call Trace: | <TASK> | perf_event_unthrottle_group+0xc9/0xf0 | perf_adjust_freq_unthr_events+0x14c/0x180 | perf_adjust_freq_unthr_context+0x8b/0x120 | perf_event_task_tick+0x5c/0x70 | sched_tick+0xce/0x220 | update_process_times+0xa4/0xd0 | tick_nohz_handler+0x88/0x120 | ? __pfx_tick_nohz_handler+0x10/0x10 | __hrtimer_run_queues+0x12c/0x2a0 | hrtimer_interrupt+0xfa/0x220 | __sysvec_apic_timer_interrupt+0x50/0xf0 | sysvec_apic_timer_interrupt+0x31/0x80 | asm_sysvec_apic_timer_interrupt+0x1a/0x20 | RIP: 0033:0x40169d | Code: 69 9c 04 00 85 c0 78 24 45 31 c9 41 89 c0 83 c9 ff 31 d2 31 c0 48 8d 35 71 0a 0b 00 bf 2a 01 00 00 e8 47 9c 04 00 85 c0 78 02 <eb> fe 48 8b 3d 22 11 0b 00 89 c2 48 8d 35 55 59 08 00 31 c0 e8 7a | RSP: 002b:00007ffc74f22e10 EFLAGS: 00000202 | RAX: 0000000000000004 RBX: 0000000000400488 RCX: 000000000044b2f9 | RDX: 00000000ffffffff RSI: 0000000000000000 RDI: 00000000004b2100 | RBP: 0000000000402ba0 R08: 0000000000000000 R09: 0000000000400488 | R10: 0000000000000003 R11: 0000000000000246 R12: 0000000000402c30 | R13: 0000000000000000 R14: 00000000004b2018 R15: 0000000000400488 | </TASK> | ---[ end trace 0000000000000000 ]---
... so I think this is pretty clearly a bug in the core code, but I'm not sure *exactly* how that should be handled, and I suspect there are some additional interactions with other concurrent enable/disable.
Quoted 7 lines
Quoted 4 lines
Quoted 4 lines
Has your syzkaller instance managed to generate a C reproducer that you can share?
It should be possible to manually build a test from the above, but that's rather tedious.I’ve attached both the 'perf.syz' and the generated C reproducer file '
perf.c' for the reference.
Thanks!
FWIW, I had a go with the generated C reproducer, and it didn't seem to trigger the issue, even with ~100 instances launched in parallel.
For the benefit of the mailing list archive, I've included your reproducer(s) inline below, but I've dropped the config as I don't belive there's anything important there beyond CONFIG_UBSAN=y + CONFIG_UBSAN_SHIFT=y.
It should be possible to figure out the exact perf_event_attr values used, but it's a bit painful to extract those manually.
Mark.
// perf.c
Quoted 242 lines
// autogenerated by syzkaller (https://github.com/google/syzkaller)
#define
_GNU_SOURCE#include <
endian.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <unistd.h>#ifndef
__NR_mmap
#define__NR_mmap222
#endif
#ifndef__NR_perf_event_open
#define__NR_perf_event_open241
#endif#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))))
uint64_tr[1] = {0xffffffffffffffff};int main(void)
{
syscall(__NR_mmap, /*addr=*/0x1ffff000ul, /*len=*/0x1000ul, /*prot=*/0ul,/*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/(intptr_t)-1, /*offset=*/0ul); syscall(__NR_mmap, /*addr=*/0x20000000ul, /*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=*/0x21000000ul, /*len=*/0x1000ul, /*prot=*/0ul, /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/(intptr_t)-1, /*offset=*/0ul); const char* reason; (void)reason; intptr_t res = 0; if (write(1, "executing program\n", sizeof("executing program\n") - 1)) { } *(uint32_t*)0x20000240 = 0; *(uint32_t*)0x20000244 = 0x80; *(uint8_t*)0x20000248 = 0; *(uint8_t*)0x20000249 = 0; *(uint8_t*)0x2000024a = 0; *(uint8_t*)0x2000024b = 0; *(uint32_t*)0x2000024c = 0; *(uint64_t*)0x20000250 = 0; *(uint64_t*)0x20000258 = 0; *(uint64_t*)0x20000260 = 0; STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 0, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 1, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 2, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 3, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 4, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 5, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 6, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 7, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 8, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 9, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 10, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 11, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 12, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 13, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 14, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 15, 2); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 17, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 18, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 19, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 20, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 21, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 22, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 23, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 24, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 25, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 26, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 27, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 28, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 29, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 30, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 31, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 32, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 33, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 34, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 35, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 36, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 37, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 38, 26); *(uint32_t*)0x20000270 = 0; *(uint32_t*)0x20000274 = 0; *(uint64_t*)0x20000278 = 0; *(uint64_t*)0x20000280 = 0; *(uint64_t*)0x20000288 = 0; *(uint64_t*)0x20000290 = 0; *(uint32_t*)0x20000298 = 0; *(uint32_t*)0x2000029c = 0; *(uint64_t*)0x200002a0 = 0; *(uint32_t*)0x200002a8 = 0; *(uint16_t*)0x200002ac = 0; *(uint16_t*)0x200002ae = 0; *(uint32_t*)0x200002b0 = 0; *(uint32_t*)0x200002b4 = 0; *(uint64_t*)0x200002b8 = 0; res = syscall(__NR_perf_event_open, /*attr=*/0x20000240ul, /*pid=*/0, /*cpu=*/0ul, /*group=*/(intptr_t)-1, /*flags=*/0ul); if (res != -1) r[0] = res; *(uint32_t*)0x20000280 = 0; *(uint32_t*)0x20000284 = 0x80; *(uint8_t*)0x20000288 = 0; *(uint8_t*)0x20000289 = 0; *(uint8_t*)0x2000028a = 0; *(uint8_t*)0x2000028b = 0; *(uint32_t*)0x2000028c = 0; *(uint64_t*)0x20000290 = 0; *(uint64_t*)0x20000298 = 0; *(uint64_t*)0x200002a0 = 0; STORE_BY_BITMASK(uint64_t, , 0x200002a8, 1, 0, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 1, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 2, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 3, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 4, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 5, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 6, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 7, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 8, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 9, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 10, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 11, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 12, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 13, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 14, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 15, 2); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 17, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 18, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 19, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 20, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 21, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 22, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 23, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 24, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 25, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 26, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 27, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 28, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 29, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 30, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 31, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 32, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 33, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 34, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 35, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 36, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 37, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 38, 26); *(uint32_t*)0x200002b0 = 0; *(uint32_t*)0x200002b4 = 0; *(uint64_t*)0x200002b8 = 0; *(uint64_t*)0x200002c0 = 0; *(uint64_t*)0x200002c8 = 0; *(uint64_t*)0x200002d0 = 0; *(uint32_t*)0x200002d8 = 0; *(uint32_t*)0x200002dc = 0; *(uint64_t*)0x200002e0 = 0; *(uint32_t*)0x200002e8 = 0; *(uint16_t*)0x200002ec = 0; *(uint16_t*)0x200002ee = 0; *(uint32_t*)0x200002f0 = 0; *(uint32_t*)0x200002f4 = 0; *(uint64_t*)0x200002f8 = 0; syscall(__NR_perf_event_open, /*attr=*/0x20000280ul, /*pid=*/0, /*cpu=*/0ul, /*group=*/r[0], /*flags=*/0ul); *(uint32_t*)0x20000540 = 3; *(uint32_t*)0x20000544 = 0x80; *(uint8_t*)0x20000548 = 0; *(uint8_t*)0x20000549 = 0; *(uint8_t*)0x2000054a = 0; *(uint8_t*)0x2000054b = 0; *(uint32_t*)0x2000054c = 0; *(uint64_t*)0x20000550 = 4; *(uint64_t*)0x20000558 = 0; *(uint64_t*)0x20000560 = 0; STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 0, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 1, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 2, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 3, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 4, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 5, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 6, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 7, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 8, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 9, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 10, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 11, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 12, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 13, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 14, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 15, 2); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 17, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 18, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 19, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 20, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 21, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 22, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 23, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 24, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 25, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 26, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 27, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 28, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 29, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 30, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 31, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 32, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 33, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 34, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 35, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 36, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 37, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 38, 26); *(uint32_t*)0x20000570 = 0; *(uint32_t*)0x20000574 = 4; *(uint64_t*)0x20000578 = 0; *(uint64_t*)0x20000580 = 2; *(uint64_t*)0x20000588 = 0x20; *(uint64_t*)0x20000590 = 0; *(uint32_t*)0x20000598 = 0; *(uint32_t*)0x2000059c = 0; *(uint64_t*)0x200005a0 = 2; *(uint32_t*)0x200005a8 = 0; *(uint16_t*)0x200005ac = 0; *(uint16_t*)0x200005ae = 0; *(uint32_t*)0x200005b0 = 0; *(uint32_t*)0x200005b4 = 0; *(uint64_t*)0x200005b8 = 0x81; syscall(__NR_perf_event_open, /*attr=*/0x20000540ul, /*pid=*/0, /*cpu=*/0ul, /*group=*/r[0], /*flags=*/0ul);
Quoted 2 lines
return 0;
}
// perf.syz
Quoted 3 lines
r0 = perf_event_open(&(0x7f0000000240)={0x0,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, @perf_config_ext},0x0,0x0,0xffffffffffffffff,0x0) perf_event_open(&(0x7f0000000280)={0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, @perf_config_ext},0x0,0x0, r0,0x0) perf_event_open(&(0x7f0000000540)={0x3,0x80,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4, @perf_bp={0x0,0x2},0x20,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x81},0x0,0x0, r0,0x0)
I really appreciate the detailed explanation, Mark.
Quoted 73 lines · Mark Rutland
Quoted 69 lines · Yunseong Kim
Quoted 59 lines · Mark Rutland
Quoted 10 lines · Mark Rutland
[ dropping Hemendra, since he doens't need to be spammed with ML traffic ]
Quoted 7 lines · Yunseong Kim
When '
event->hw.idx' was negative in armv8pmu_enable/disable_event().UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:716:25 shift exponent -1 is negative UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:658:13 shift exponent -1 is negativeI can reproduce this locally with:
| #include <stdio.h> | #include <stdlib.h> | #include <unistd.h> | | #include <sys/syscall.h> | #include <sys/types.h> | | #include <linux/perf_event.h> | | static int perf_event_open(struct perf_event_attr *attr, pid_t pid, int cpu, | int group_fd, unsigned long flags) | { | return syscall(__NR_perf_event_open, attr, pid, cpu, group_fd, flags); | } | | struct perf_event_attr attr_parent = { | .type = PERF_TYPE_HARDWARE, | .size = sizeof(attr_parent), | .config = PERF_COUNT_HW_CPU_CYCLES, | .sample_period = 1, | .exclude_kernel = 1, | }; | | struct perf_event_attr attr_child = { | .type = PERF_TYPE_HARDWARE, | .size = sizeof(attr_child), | .config = PERF_COUNT_HW_CPU_CYCLES, | .exclude_kernel = 1, | .disabled = 1, | }; | | int main(int argc, char *argv[]) | { | int parent, child; | | parent = perf_event_open(&attr_parent, 0, -1, -1, 0); | if (parent < 0) { | fprintf(stderr, "Unable to create event: %d\n", parent); | exit (-1); | } | | child = perf_event_open(&attr_child, 0, -1, parent, 0); | if (child < 0) { | fprintf(stderr, "Unable to create event: %d\n", child); | exit (-1);Quoted 9 lines
| } | | for (;;) { | asm("" ::: "memory"); | } | | return 0; | }Quoted 2 lines
I attempted to reproduce the issue with the code you shared, but it didn’t seem to work on my end. Do I need to run it with multiple processes?
Quoted 7 lines
This should only need a single process. On my machine it triggers the PMEV* warnings and the UBSAN splats immediately. I'm using v6.16-rc2 defconfig +
CONFIG_UBSAN=y+CONFIG_UBSAN_SHIFT=y, built with GCC 15.1.0, running under KVM on a ThunderX2 host.Just to rule out the obvious, are you sure you're testing a kernel *without* your proposed fix?
Yes, that’s right. Restartingt the program makes the issue appear reliably.
Mark, would it be okay if I submit a patch to include the C program you wrote in the perf tests?
I recorded a video demonstrating the reproduction.
In summary, my environment is as follows:
- Linux Kernel v6.16.0-rc2-g5982a539cdce
- Built with GCC version 14.2.0
- Guest running under KVM on a RADXA Orion6 host
It’s based on the syzbot ci-upstream-gce-arm64 config, with two configs enabled.
- CONFIG_UBSAN=y + CONFIG_UBSAN_SHIFT=y
I’ve uploaded the C program you wrote along with a shell script that runs it repeatedly at the following link.
| UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:658:13 | shift exponent -1 is negative | UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:730:26 | shift exponent -1 is negative | ** replaying previous printk message ** | ------------[ cut here ]------------ | UBSAN: shift-out-of-bounds in drivers/perf/arm_pmuv3.c:716:25 | shift exponent -1 is negative | CPU: 5 UID: 0 PID: 7676 Comm: perf-disabled-c Tainted: G W 6.16.0-rc2-g5982a539cdce #8 PREEMPT | Tainted: [W]=WARN | Hardware name: QEMU KVM Virtual Machine, BIOS 2025.02-8 05/13/2025 | Call trace: | show_stack+0x2c/0x3c (C) | __dump_stack+0x30/0x40 | dump_stack_lvl+0x1e0/0x2bc | dump_stack+0x1c/0x48 | ubsan_epilogue+0x14/0x48 | __ubsan_handle_shift_out_of_bounds+0x2b0/0x34c | armv8pmu_enable_event+0x3c4/0x4b0 | armpmu_start+0xc4/0x118 | perf_event_unthrottle_group+0x3a8/0x50c | perf_adjust_freq_unthr_events+0x2f4/0x578 | perf_adjust_freq_unthr_context+0x278/0x46c | perf_event_task_tick+0x394/0x5b0 | sched_tick+0x314/0x6cc | update_process_times+0x374/0x4b0 | tick_nohz_handler+0x334/0x480 | __hrtimer_run_queues+0x3ec/0xb78 | hrtimer_interrupt+0x2b8/0xb50 | arch_timer_handler_virt+0x74/0x88 | handle_percpu_devid_irq+0x174/0x308 | generic_handle_domain_irq+0xe0/0x140 | gic_handle_irq+0x5c4/0xaa8 | call_on_irq_stack+0x24/0x30 | do_interrupt_handler+0xd4/0x138 | el0_interrupt+0x6c/0x1dc | __el0_irq_handler_common+0x18/0x24 | el0t_64_irq_handler+0x10/0x1c | el0t_64_irq+0x1ac/0x1b0 | ---[ end trace ]---
Quoted 6 lines
The idea is that the period for the
group_leaderevent is tiny and should cause some throttling, and the for-loop at the end should spin for long enough in userspace that multiple overflows occur and result in throttling. I don't currently see how that couldn't trigger the issue.FWIW, it also triggers a warning on x86-64 defconfig, e.g.
Thanks for checking it on x86 as well!
Quoted 57 lines
| # ./perf-disabled-child | perf: interrupt took too long (6615 > 6612), lowering kernel.perf_event_max_sample_rate to 30000 | perf: interrupt took too long (8399 > 8268), lowering kernel.perf_event_max_sample_rate to 23000 | perf: interrupt took too long (10626 > 10498), lowering kernel.perf_event_max_sample_rate to 18000 | perf: interrupt took too long (13313 > 13282), lowering kernel.perf_event_max_sample_rate to 15000 | perf: interrupt took too long (16644 > 16641), lowering kernel.perf_event_max_sample_rate to 12000 | ------------[ cut here ]------------ | WARNING: CPU: 5 PID: 445 at arch/x86/events/core.c:1521 x86_pmu_start+0x72/0x90 | Modules linked in: | CPU: 5 UID: 0 PID: 445 Comm: perf-disabled-c Not tainted 6.16.0-rc7 #1 PREEMPT(full) | Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014 | RIP: 0010:x86_pmu_start+0x72/0x90 | Code: 00 00 00 00 4a 89 5c e5 00 48 81 c5 00 02 00 00 4c 0f ab 65 00 48 89 df e8 fb f9 00 00 48 89 df 5b 5d 41 5c e9 8f a7 1e 00 90 <0f> 0b 90 5b 5d 41 5c e9 c2 4d f8 00 90 0f 0b 90 eb f1 90 0f 0b 90 | RSP: 0000:ffffb79441017d68 EFLAGS: 00010046 | RAX: 0000000000000000 RBX: ffff95f502618468 RCX: 0000000000000020 | RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff95f502618468 | RBP: ffff95f57d154ca0 R08: 0000000000000001 R09: 000000000000000b | R10: 00000000000000c1 R11: 0000000000000001 R12: ffffffffffffffff | R13: 0000000000000001 R14: ffff95f502601330 R15: ffff95f57d15bb00 | FS: 000000001188d300(0000) GS:ffff95f5e3e3f000(0000) knlGS:0000000000000000 | CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 | CR2: 00000000004a2d58 CR3: 0000000004170005 CR4: 0000000000370ef0 | Call Trace: | <TASK> | perf_event_unthrottle_group+0xc9/0xf0 | perf_adjust_freq_unthr_events+0x14c/0x180 | perf_adjust_freq_unthr_context+0x8b/0x120 | perf_event_task_tick+0x5c/0x70 | sched_tick+0xce/0x220 | update_process_times+0xa4/0xd0 | tick_nohz_handler+0x88/0x120 | ? __pfx_tick_nohz_handler+0x10/0x10 | __hrtimer_run_queues+0x12c/0x2a0 | hrtimer_interrupt+0xfa/0x220 | __sysvec_apic_timer_interrupt+0x50/0xf0 | sysvec_apic_timer_interrupt+0x31/0x80 | asm_sysvec_apic_timer_interrupt+0x1a/0x20 | RIP: 0033:0x40169d | Code: 69 9c 04 00 85 c0 78 24 45 31 c9 41 89 c0 83 c9 ff 31 d2 31 c0 48 8d 35 71 0a 0b 00 bf 2a 01 00 00 e8 47 9c 04 00 85 c0 78 02 <eb> fe 48 8b 3d 22 11 0b 00 89 c2 48 8d 35 55 59 08 00 31 c0 e8 7a | RSP: 002b:00007ffc74f22e10 EFLAGS: 00000202 | RAX: 0000000000000004 RBX: 0000000000400488 RCX: 000000000044b2f9 | RDX: 00000000ffffffff RSI: 0000000000000000 RDI: 00000000004b2100 | RBP: 0000000000402ba0 R08: 0000000000000000 R09: 0000000000400488 | R10: 0000000000000003 R11: 0000000000000246 R12: 0000000000402c30 | R13: 0000000000000000 R14: 00000000004b2018 R15: 0000000000400488 | </TASK> | ---[ end trace 0000000000000000 ]---... so I think this is pretty clearly a bug in the core code, but I'm not sure *exactly* how that should be handled, and I suspect there are some additional interactions with other concurrent enable/disable.
Quoted 5 lines
Quoted 4 lines
Quoted 4 lines
Has your syzkaller instance managed to generate a C reproducer that you can share?
It should be possible to manually build a test from the above, but that's rather tedious.
Quoted 7 lines
Quoted 2 lines
I’ve attached both the 'perf.syz' and the generated C reproducer file '
perf.c' for the reference.Thanks!
FWIW, I had a go with the generated C reproducer, and it didn't seem to trigger the issue, even with ~100 instances launched in parallel.
Oh, I think I made a mistake while adding line breaks. Sorry about that!
Quoted 9 lines
For the benefit of the mailing list archive, I've included your reproducer(s) inline below, but I've dropped the config as I don't belive there's anything important there beyond
CONFIG_UBSAN=y+CONFIG_UBSAN_SHIFT=y.It should be possible to figure out the exact
perf_event_attrvalues used, but it's a bit painful to extract those manually.Mark.
Thanks for summarizing the key points so clearly.
Quoted 246 lines
//
perf.cQuoted 242 lines
// autogenerated by syzkaller (https://github.com/google/syzkaller)
#define
_GNU_SOURCE#include <
endian.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <unistd.h>#ifndef
__NR_mmap
#define__NR_mmap222
#endif
#ifndef__NR_perf_event_open
#define__NR_perf_event_open241
#endif#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))))
uint64_tr[1] = {0xffffffffffffffff};int main(void)
{
syscall(__NR_mmap, /*addr=*/0x1ffff000ul, /*len=*/0x1000ul, /*prot=*/0ul,/*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/(intptr_t)-1, /*offset=*/0ul); syscall(__NR_mmap, /*addr=*/0x20000000ul, /*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=*/0x21000000ul, /*len=*/0x1000ul, /*prot=*/0ul, /*flags=MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE*/ 0x32ul, /*fd=*/(intptr_t)-1, /*offset=*/0ul); const char* reason; (void)reason; intptr_t res = 0; if (write(1, "executing program\n", sizeof("executing program\n") - 1)) { } *(uint32_t*)0x20000240 = 0; *(uint32_t*)0x20000244 = 0x80; *(uint8_t*)0x20000248 = 0; *(uint8_t*)0x20000249 = 0; *(uint8_t*)0x2000024a = 0; *(uint8_t*)0x2000024b = 0; *(uint32_t*)0x2000024c = 0; *(uint64_t*)0x20000250 = 0; *(uint64_t*)0x20000258 = 0; *(uint64_t*)0x20000260 = 0; STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 0, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 1, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 2, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 3, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 4, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 5, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 6, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 7, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 8, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 9, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 10, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 11, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 12, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 13, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 14, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 15, 2); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 17, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 18, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 19, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 20, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 21, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 22, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 23, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 24, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 25, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 26, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 27, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 28, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 29, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 30, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 31, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 32, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 33, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 34, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 35, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 36, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 37, 1); STORE_BY_BITMASK(uint64_t, , 0x20000268, 0, 38, 26); *(uint32_t*)0x20000270 = 0; *(uint32_t*)0x20000274 = 0; *(uint64_t*)0x20000278 = 0; *(uint64_t*)0x20000280 = 0; *(uint64_t*)0x20000288 = 0; *(uint64_t*)0x20000290 = 0; *(uint32_t*)0x20000298 = 0; *(uint32_t*)0x2000029c = 0; *(uint64_t*)0x200002a0 = 0; *(uint32_t*)0x200002a8 = 0; *(uint16_t*)0x200002ac = 0; *(uint16_t*)0x200002ae = 0; *(uint32_t*)0x200002b0 = 0; *(uint32_t*)0x200002b4 = 0; *(uint64_t*)0x200002b8 = 0; res = syscall(__NR_perf_event_open, /*attr=*/0x20000240ul, /*pid=*/0, /*cpu=*/0ul, /*group=*/(intptr_t)-1, /*flags=*/0ul); if (res != -1) r[0] = res; *(uint32_t*)0x20000280 = 0; *(uint32_t*)0x20000284 = 0x80; *(uint8_t*)0x20000288 = 0; *(uint8_t*)0x20000289 = 0; *(uint8_t*)0x2000028a = 0; *(uint8_t*)0x2000028b = 0; *(uint32_t*)0x2000028c = 0; *(uint64_t*)0x20000290 = 0; *(uint64_t*)0x20000298 = 0; *(uint64_t*)0x200002a0 = 0; STORE_BY_BITMASK(uint64_t, , 0x200002a8, 1, 0, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 1, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 2, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 3, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 4, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 5, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 6, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 7, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 8, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 9, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 10, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 11, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 12, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 13, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 14, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 15, 2); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 17, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 18, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 19, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 20, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 21, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 22, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 23, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 24, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 25, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 26, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 27, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 28, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 29, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 30, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 31, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 32, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 33, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 34, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 35, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 36, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 37, 1); STORE_BY_BITMASK(uint64_t, , 0x200002a8, 0, 38, 26); *(uint32_t*)0x200002b0 = 0; *(uint32_t*)0x200002b4 = 0; *(uint64_t*)0x200002b8 = 0; *(uint64_t*)0x200002c0 = 0; *(uint64_t*)0x200002c8 = 0; *(uint64_t*)0x200002d0 = 0; *(uint32_t*)0x200002d8 = 0; *(uint32_t*)0x200002dc = 0; *(uint64_t*)0x200002e0 = 0; *(uint32_t*)0x200002e8 = 0; *(uint16_t*)0x200002ec = 0; *(uint16_t*)0x200002ee = 0; *(uint32_t*)0x200002f0 = 0; *(uint32_t*)0x200002f4 = 0; *(uint64_t*)0x200002f8 = 0; syscall(__NR_perf_event_open, /*attr=*/0x20000280ul, /*pid=*/0, /*cpu=*/0ul, /*group=*/r[0], /*flags=*/0ul); *(uint32_t*)0x20000540 = 3; *(uint32_t*)0x20000544 = 0x80; *(uint8_t*)0x20000548 = 0; *(uint8_t*)0x20000549 = 0; *(uint8_t*)0x2000054a = 0; *(uint8_t*)0x2000054b = 0; *(uint32_t*)0x2000054c = 0; *(uint64_t*)0x20000550 = 4; *(uint64_t*)0x20000558 = 0; *(uint64_t*)0x20000560 = 0; STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 0, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 1, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 2, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 3, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 4, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 5, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 6, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 7, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 8, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 9, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 10, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 11, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 12, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 13, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 14, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 15, 2); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 17, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 18, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 19, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 20, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 21, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 22, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 23, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 24, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 25, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 26, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 27, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 28, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 29, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 30, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 31, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 32, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 33, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 34, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 35, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 36, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 37, 1); STORE_BY_BITMASK(uint64_t, , 0x20000568, 0, 38, 26); *(uint32_t*)0x20000570 = 0; *(uint32_t*)0x20000574 = 4; *(uint64_t*)0x20000578 = 0; *(uint64_t*)0x20000580 = 2; *(uint64_t*)0x20000588 = 0x20; *(uint64_t*)0x20000590 = 0; *(uint32_t*)0x20000598 = 0; *(uint32_t*)0x2000059c = 0; *(uint64_t*)0x200005a0 = 2; *(uint32_t*)0x200005a8 = 0; *(uint16_t*)0x200005ac = 0; *(uint16_t*)0x200005ae = 0; *(uint32_t*)0x200005b0 = 0; *(uint32_t*)0x200005b4 = 0; *(uint64_t*)0x200005b8 = 0x81; syscall(__NR_perf_event_open, /*attr=*/0x20000540ul, /*pid=*/0, /*cpu=*/0ul, /*group=*/r[0], /*flags=*/0ul);Quoted 2 lines
return 0;
}
Quoted 4 lines
// perf.syz
Quoted 3 lines
r0 = perf_event_open(&(0x7f0000000240)={0x0,
0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, @perf_config_ext},0x0,0x0,0xffffffffffffffff,0x0) perf_event_open(&(0x7f0000000280)={0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, @perf_config_ext},0x0,0x0, r0,0x0) perf_event_open(&(0x7f0000000540)={0x3,0x80,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4, @perf_bp={0x0,0x2},0x20,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x81},0x0,0x0, r0,0x0)
Next time, I'll make sure to submit it in a clearer format. The way you've done it looks really nice.
I sincerely appreciate your detailed explanation once again!
Best regards,
Yunseong Kim