====================================== | [ 4380.109914][ T7030] ================================================================== | [ 4380.110221][ T7030] BUG: KASAN: use-after-free in page_pool_item_uninit (net/core/page_pool.c:523) | [ 4380.110424][ T7030] Read of size 8 at addr ffff888011361008 by task kworker/0:2/7030 | [ 4380.110614][ T7030] [ 4380.110910][ T7030] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 4380.111070][ T7030] Workqueue: events page_pool_release_retry [ 4380.111240][ T7030] Call Trace: [ 4380.111337][ T7030] [ 4380.111408][ T7030] dump_stack_lvl (lib/dump_stack.c:123) [ 4380.111549][ T7030] print_address_description.constprop.0 (mm/kasan/report.c:379) [ 4380.111710][ T7030] ? page_pool_item_uninit (net/core/page_pool.c:523) [ 4380.111839][ T7030] print_report (mm/kasan/report.c:490) [ 4380.111966][ T7030] ? kasan_addr_to_slab (./include/linux/mm.h:1295 mm/kasan/../slab.h:211 mm/kasan/common.c:38) [ 4380.112097][ T7030] kasan_report (mm/kasan/report.c:604) [ 4380.112193][ T7030] ? page_pool_item_uninit (net/core/page_pool.c:523) [ 4380.112321][ T7030] page_pool_item_uninit (net/core/page_pool.c:523) [ 4380.112451][ T7030] page_pool_release (net/core/page_pool.c:1431 net/core/page_pool.c:1484) [ 4380.112594][ T7030] ? __pfx_page_pool_release (net/core/page_pool.c:1478) [ 4380.112744][ T7030] ? __pfx_lock_acquire.part.0 (kernel/locking/lockdep.c:5814) [ 4380.112875][ T7030] ? trace_lock_acquire (./include/trace/events/lock.h:24 (discriminator 37)) [ 4380.112999][ T7030] ? trace_lock_acquire (./include/trace/events/lock.h:24 (discriminator 37)) [ 4380.113128][ T7030] page_pool_release_retry (net/core/page_pool.c:1497) [ 4380.113260][ T7030] ? trace_workqueue_execute_start (./include/trace/events/workqueue.h:84 (discriminator 37)) [ 4380.113418][ T7030] process_one_work (kernel/workqueue.c:3229) [ 4380.113548][ T7030] ? __pfx___lock_release (kernel/locking/lockdep.c:5501) [ 4380.113674][ T7030] ? __pfx_process_one_work (kernel/workqueue.c:3131) [ 4380.113803][ T7030] ? assign_work (kernel/workqueue.c:1200) [ 4380.113929][ T7030] worker_thread (kernel/workqueue.c:3304 kernel/workqueue.c:3391) [ 4380.114054][ T7030] ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) [ 4380.114217][ T7030] ? __pfx_worker_thread (kernel/workqueue.c:3337) [ 4380.114345][ T7030] ? __pfx_worker_thread (kernel/workqueue.c:3337) [ 4380.114472][ T7030] kthread (kernel/kthread.c:389) [ 4380.114573][ T7030] ? __pfx_kthread (kernel/kthread.c:342) [ 4380.114702][ T7030] ret_from_fork (arch/x86/kernel/process.c:147) [ 4380.114835][ T7030] ? __pfx_kthread (kernel/kthread.c:342) [ 4380.114963][ T7030] ret_from_fork_asm (arch/x86/entry/entry_64.S:257) | [ 4380.117948][ T7030] Disabling lock debugging due to kernel taint | [ 4380.118126][ T7030] Oops: general protection fault, probably for non-canonical address 0xf99995999999999c: 0000 [#1] PREEMPT SMP KASAN NOPTI | [ 4380.118429][ T7030] KASAN: maybe wild-memory-access in range [0xcccccccccccccce0-0xcccccccccccccce7] | [ 4380.118888][ T7030] Tainted: [B]=BAD_PAGE [ 4380.118984][ T7030] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 4380.119141][ T7030] Workqueue: events page_pool_release_retry [ 4380.119303][ T7030] RIP: 0010:page_pool_item_uninit (./arch/x86/include/asm/atomic.h:23 ./include/linux/atomic/atomic-arch-fallback.h:457 ./include/linux/atomic/atomic-instrumented.h:33 ./include/linux/refcount.h:136 net/core/page_pool.c:524) [ 4380.119466][ T7030] Code: ad 48 bb 00 00 00 00 00 fc ff df 48 c1 ed 03 48 01 dd 4d 8d 75 1c be 04 00 00 00 4c 89 f7 e8 ad 6d 63 fe 4c 89 f0 48 c1 e8 03 <0f> b6 14 18 4c 89 f0 83 e0 07 83 c0 03 38 d0 7c 04 84 d2 75 62 41 All code ======== 0: ad lods %ds:(%rsi),%eax 1: 48 bb 00 00 00 00 00 movabs $0xdffffc0000000000,%rbx 8: fc ff df b: 48 c1 ed 03 shr $0x3,%rbp f: 48 01 dd add %rbx,%rbp 12: 4d 8d 75 1c lea 0x1c(%r13),%r14 16: be 04 00 00 00 mov $0x4,%esi 1b: 4c 89 f7 mov %r14,%rdi 1e: e8 ad 6d 63 fe call 0xfffffffffe636dd0 23: 4c 89 f0 mov %r14,%rax 26: 48 c1 e8 03 shr $0x3,%rax 2a:* 0f b6 14 18 movzbl (%rax,%rbx,1),%edx <-- trapping instruction 2e: 4c 89 f0 mov %r14,%rax 31: 83 e0 07 and $0x7,%eax 34: 83 c0 03 add $0x3,%eax 37: 38 d0 cmp %dl,%al 39: 7c 04 jl 0x3f 3b: 84 d2 test %dl,%dl 3d: 75 62 jne 0xa1 3f: 41 rex.B Code starting with the faulting instruction =========================================== 0: 0f b6 14 18 movzbl (%rax,%rbx,1),%edx 4: 4c 89 f0 mov %r14,%rax 7: 83 e0 07 and $0x7,%eax a: 83 c0 03 add $0x3,%eax d: 38 d0 cmp %dl,%al f: 7c 04 jl 0x15 11: 84 d2 test %dl,%dl 13: 75 62 jne 0x77 15: 41 rex.B [ 4380.119906][ T7030] RSP: 0018:ffffc90004f87bc0 EFLAGS: 00010a06 [ 4380.120068][ T7030] RAX: 199999999999999c RBX: dffffc0000000000 RCX: ffffffffac49f6e3 [ 4380.120254][ T7030] RDX: 0000000000000000 RSI: 0000000000000004 RDI: cccccccccccccce0 [ 4380.120443][ T7030] RBP: fffffbfff5b64c78 R08: 0000000000000000 R09: fffffbfff5f3f688 [ 4380.120627][ T7030] R10: ffffffffaf9fb447 R11: 205d303330375420 R12: ffff888011d9b620 [ 4380.120812][ T7030] R13: ccccccccccccccc4 R14: cccccccccccccce0 R15: ffffea000022d080 [ 4380.120998][ T7030] FS: 0000000000000000(0000) GS:ffff88806d000000(0000) knlGS:0000000000000000 [ 4380.121218][ T7030] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 4380.121375][ T7030] CR2: 00007f5d94760000 CR3: 00000000050c0002 CR4: 0000000000772ef0 [ 4380.121563][ T7030] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 4380.121746][ T7030] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 4380.121936][ T7030] PKRU: 55555554 [ 4380.122030][ T7030] Call Trace: [ 4380.122123][ T7030] [ 4380.122187][ T7030] ? die_addr (arch/x86/kernel/dumpstack.c:421 arch/x86/kernel/dumpstack.c:460) [ 4380.122285][ T7030] ? exc_general_protection (arch/x86/kernel/traps.c:751 arch/x86/kernel/traps.c:693) [ 4380.122416][ T7030] ? asm_exc_general_protection (./arch/x86/include/asm/idtentry.h:617) [ 4380.122545][ T7030] ? page_pool_item_uninit (./arch/x86/include/asm/atomic.h:23 ./include/linux/atomic/atomic-arch-fallback.h:457 ./include/linux/atomic/atomic-instrumented.h:33 ./include/linux/refcount.h:136 net/core/page_pool.c:524) [ 4380.122670][ T7030] ? page_pool_item_uninit (./arch/x86/include/asm/atomic.h:23 ./include/linux/atomic/atomic-arch-fallback.h:457 ./include/linux/atomic/atomic-instrumented.h:33 ./include/linux/refcount.h:136 net/core/page_pool.c:524) [ 4380.122801][ T7030] page_pool_release (net/core/page_pool.c:1431 net/core/page_pool.c:1484) [ 4380.122926][ T7030] ? __pfx_page_pool_release (net/core/page_pool.c:1478) [ 4380.123048][ T7030] ? __pfx_lock_acquire.part.0 (kernel/locking/lockdep.c:5814) [ 4380.123171][ T7030] ? trace_lock_acquire (./include/trace/events/lock.h:24 (discriminator 37)) [ 4380.123294][ T7030] ? trace_lock_acquire (./include/trace/events/lock.h:24 (discriminator 37)) [ 4380.123416][ T7030] page_pool_release_retry (net/core/page_pool.c:1497) [ 4380.123537][ T7030] ? trace_workqueue_execute_start (./include/trace/events/workqueue.h:84 (discriminator 37)) [ 4380.123692][ T7030] process_one_work (kernel/workqueue.c:3229) [ 4380.123818][ T7030] ? __pfx___lock_release (kernel/locking/lockdep.c:5501) [ 4380.123941][ T7030] ? __pfx_process_one_work (kernel/workqueue.c:3131) [ 4380.124067][ T7030] ? assign_work (kernel/workqueue.c:1200) [ 4380.124188][ T7030] worker_thread (kernel/workqueue.c:3304 kernel/workqueue.c:3391) [ 4380.124312][ T7030] ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) [ 4380.124464][ T7030] ? __pfx_worker_thread (kernel/workqueue.c:3337) [ 4380.124590][ T7030] ? __pfx_worker_thread (kernel/workqueue.c:3337) [ 4380.124712][ T7030] kthread (kernel/kthread.c:389) [ 4380.124806][ T7030] ? __pfx_kthread (kernel/kthread.c:342) [ 4380.124928][ T7030] ret_from_fork (arch/x86/kernel/process.c:147) [ 4380.125053][ T7030] ? __pfx_kthread (kernel/kthread.c:342) Finger prints: page_pool_item_uninit:page_pool_release:page_pool_release_retry:process_one_work:worker_thread print_report:kasan_report:page_pool_item_uninit:page_pool_release:page_pool_release_retry