====================================== | [ 11.330926][ T66] ================================================================== | [ 11.331165][ T66] BUG: KASAN: use-after-free in page_pool_item_uninit (net/core/page_pool.c:523) | [ 11.331373][ T66] Read of size 8 at addr ffff88800963d008 by task kworker/u16:1/66 | [ 11.331576][ T66] [ 11.331889][ T66] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 11.332058][ T66] Workqueue: netns cleanup_net [ 11.332202][ T66] Call Trace: [ 11.332307][ T66] [ 11.332382][ T66] dump_stack_lvl (lib/dump_stack.c:123) [ 11.332524][ T66] print_address_description.constprop.0 (mm/kasan/report.c:379) [ 11.332694][ T66] ? page_pool_item_uninit (net/core/page_pool.c:523) [ 11.332832][ T66] print_report (mm/kasan/report.c:490) [ 11.332970][ T66] ? kasan_addr_to_slab (./include/linux/mm.h:1295 mm/kasan/../slab.h:211 mm/kasan/common.c:38) [ 11.333110][ T66] kasan_report (mm/kasan/report.c:604) [ 11.333212][ T66] ? page_pool_item_uninit (net/core/page_pool.c:523) [ 11.333349][ T66] page_pool_item_uninit (net/core/page_pool.c:523) [ 11.333489][ T66] page_pool_release (net/core/page_pool.c:1431 net/core/page_pool.c:1484) [ 11.333624][ T66] ? __pfx_page_pool_release (net/core/page_pool.c:1478) [ 11.333760][ T66] ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) [ 11.333931][ T66] page_pool_destroy (net/core/page_pool.c:1555) [ 11.334068][ T66] veth_napi_del_range (drivers/net/veth.c:1054 (discriminator 3)) [ 11.334208][ T66] ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) [ 11.334377][ T66] veth_close (drivers/net/veth.c:1383) [ 11.334481][ T66] __dev_close_many (net/core/dev.c:1591) [ 11.334621][ T66] ? __pfx___dev_close_many (net/core/dev.c:1555) [ 11.334762][ T66] dev_close_many (net/core/dev.c:1618) [ 11.334900][ T66] ? fou_exit_net (net/ipv4/fou_core.c:1234) [ 11.335037][ T66] ? __pfx_dev_close_many (net/core/dev.c:1608) [ 11.335177][ T66] ? __mutex_trylock_common (./arch/x86/include/asm/atomic64_64.h:101 ./include/linux/atomic/atomic-arch-fallback.h:4296 ./include/linux/atomic/atomic-long.h:1482 ./include/linux/atomic/atomic-instrumented.h:4458 kernel/locking/mutex.c:104) [ 11.335316][ T66] ? __pfx___mutex_trylock_common (kernel/locking/mutex.c:79) [ 11.335496][ T66] unregister_netdevice_many_notify (net/core/dev.c:11562) [ 11.335670][ T66] ? __pfx_unregister_netdevice_many_notify (net/core/dev.c:11529) [ 11.335838][ T66] ? default_device_exit_batch (net/core/dev.c:12122) [ 11.335974][ T66] ? mutex_is_locked (./arch/x86/include/asm/atomic64_64.h:15 ./include/linux/atomic/atomic-arch-fallback.h:2583 ./include/linux/atomic/atomic-long.h:38 ./include/linux/atomic/atomic-instrumented.h:3189 kernel/locking/mutex.h:47 kernel/locking/mutex.c:66) [ 11.336109][ T66] ? rtnl_is_locked (net/core/rtnetlink.c:163) [ 11.336246][ T66] ? unregister_netdevice_queue (net/core/dev.c:11514) [ 11.336415][ T66] ? __pfx_unregister_netdevice_queue (net/core/dev.c:11513) [ 11.336584][ T66] ? __pfx_unregister_netdevice_queue (net/core/dev.c:11513) [ 11.336757][ T66] default_device_exit_batch (net/core/dev.c:12136) [ 11.336896][ T66] ? __pfx_default_device_exit_batch (net/core/dev.c:12111) [ 11.337064][ T66] ? ops_exit_list (net/core/net_namespace.c:171 (discriminator 3)) [ 11.337200][ T66] cleanup_net (net/core/net_namespace.c:647 (discriminator 3)) [ 11.337338][ T66] ? __pfx_lock_acquire.part.0 (kernel/locking/lockdep.c:5814) [ 11.337478][ T66] ? __pfx_cleanup_net (net/core/net_namespace.c:592) [ 11.337615][ T66] ? trace_lock_acquire (./include/trace/events/lock.h:24 (discriminator 37)) [ 11.337757][ T66] ? lock_acquire (kernel/locking/lockdep.c:5822) [ 11.337895][ T66] ? process_one_work (kernel/workqueue.c:3205) [ 11.338034][ T66] process_one_work (kernel/workqueue.c:3229) [ 11.338173][ T66] ? __pfx___lock_release (kernel/locking/lockdep.c:5501) [ 11.338314][ T66] ? __pfx_process_one_work (kernel/workqueue.c:3131) [ 11.338454][ T66] ? assign_work (kernel/workqueue.c:1200) [ 11.338591][ T66] worker_thread (kernel/workqueue.c:3304 kernel/workqueue.c:3391) [ 11.338817][ T66] ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) [ 11.338995][ T66] ? __pfx_worker_thread (kernel/workqueue.c:3337) [ 11.339135][ T66] ? __pfx_worker_thread (kernel/workqueue.c:3337) [ 11.339273][ T66] kthread (kernel/kthread.c:389) [ 11.339381][ T66] ? __pfx_kthread (kernel/kthread.c:342) [ 11.339521][ T66] ret_from_fork (arch/x86/kernel/process.c:147) [ 11.339663][ T66] ? __pfx_kthread (kernel/kthread.c:342) [ 11.339800][ T66] ret_from_fork_asm (arch/x86/entry/entry_64.S:257) | [ 11.342905][ T66] Disabling lock debugging due to kernel taint | [ 11.343101][ T66] Oops: general protection fault, probably for non-canonical address 0xf99995999999999c: 0000 [#1] PREEMPT SMP KASAN NOPTI | [ 11.343435][ T66] KASAN: maybe wild-memory-access in range [0xcccccccccccccce0-0xcccccccccccccce7] | [ 11.343938][ T66] Tainted: [B]=BAD_PAGE [ 11.344045][ T66] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 11.344215][ T66] Workqueue: netns cleanup_net [ 11.344359][ T66] 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) [ 11.344539][ T66] Code: 96 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: 96 xchg %eax,%esi 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 [ 11.345020][ T66] RSP: 0018:ffffc90000477698 EFLAGS: 00010a06 [ 11.345189][ T66] RAX: 199999999999999c RBX: dffffc0000000000 RCX: ffffffff94e9f6e3 [ 11.345387][ T66] RDX: 0000000000000000 RSI: 0000000000000004 RDI: cccccccccccccce0 [ 11.345599][ T66] RBP: fffffbfff2ca4c78 R08: 0000000000000000 R09: fffffbfff307f688 [ 11.345803][ T66] R10: ffffffff983fb447 R11: 205d363654202020 R12: ffff88800e191e20 [ 11.346009][ T66] R13: ccccccccccccccc4 R14: cccccccccccccce0 R15: 0000000000000000 [ 11.346211][ T66] FS: 0000000000000000(0000) GS:ffff888066100000(0000) knlGS:0000000000000000 [ 11.346447][ T66] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 11.346616][ T66] CR2: 00007f0d1446a270 CR3: 000000006e93a004 CR4: 0000000000772ef0 [ 11.346822][ T66] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 11.347022][ T66] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 11.347223][ T66] PKRU: 55555554 [ 11.347324][ T66] Call Trace: [ 11.347426][ T66] [ 11.347493][ T66] ? die_addr (arch/x86/kernel/dumpstack.c:421 arch/x86/kernel/dumpstack.c:460) [ 11.347600][ T66] ? exc_general_protection (arch/x86/kernel/traps.c:751 arch/x86/kernel/traps.c:693) [ 11.347740][ T66] ? asm_exc_general_protection (./arch/x86/include/asm/idtentry.h:617) [ 11.347875][ T66] ? 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) [ 11.348012][ T66] ? 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) [ 11.348146][ T66] ? 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) [ 11.348280][ T66] page_pool_release (net/core/page_pool.c:1431 net/core/page_pool.c:1484) [ 11.348418][ T66] ? __pfx_page_pool_release (net/core/page_pool.c:1478) [ 11.348555][ T66] ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) [ 11.348725][ T66] page_pool_destroy (net/core/page_pool.c:1555) [ 11.348859][ T66] veth_napi_del_range (drivers/net/veth.c:1054 (discriminator 3)) [ 11.348997][ T66] ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) [ 11.349166][ T66] veth_close (drivers/net/veth.c:1383) [ 11.349265][ T66] __dev_close_many (net/core/dev.c:1591) [ 11.349401][ T66] ? __pfx___dev_close_many (net/core/dev.c:1555) [ 11.349538][ T66] dev_close_many (net/core/dev.c:1618) [ 11.349672][ T66] ? fou_exit_net (net/ipv4/fou_core.c:1234) [ 11.349806][ T66] ? __pfx_dev_close_many (net/core/dev.c:1608) [ 11.349940][ T66] ? __mutex_trylock_common (./arch/x86/include/asm/atomic64_64.h:101 ./include/linux/atomic/atomic-arch-fallback.h:4296 ./include/linux/atomic/atomic-long.h:1482 ./include/linux/atomic/atomic-instrumented.h:4458 kernel/locking/mutex.c:104) [ 11.350076][ T66] ? __pfx___mutex_trylock_common (kernel/locking/mutex.c:79) [ 11.350241][ T66] unregister_netdevice_many_notify (net/core/dev.c:11562) [ 11.350412][ T66] ? __pfx_unregister_netdevice_many_notify (net/core/dev.c:11529) [ 11.350580][ T66] ? default_device_exit_batch (net/core/dev.c:12122) [ 11.350721][ T66] ? mutex_is_locked (./arch/x86/include/asm/atomic64_64.h:15 ./include/linux/atomic/atomic-arch-fallback.h:2583 ./include/linux/atomic/atomic-long.h:38 ./include/linux/atomic/atomic-instrumented.h:3189 kernel/locking/mutex.h:47 kernel/locking/mutex.c:66) [ 11.350854][ T66] ? rtnl_is_locked (net/core/rtnetlink.c:163) [ 11.350989][ T66] ? unregister_netdevice_queue (net/core/dev.c:11514) [ 11.351155][ T66] ? __pfx_unregister_netdevice_queue (net/core/dev.c:11513) [ 11.351324][ T66] ? __pfx_unregister_netdevice_queue (net/core/dev.c:11513) [ 11.351494][ T66] default_device_exit_batch (net/core/dev.c:12136) [ 11.351628][ T66] ? __pfx_default_device_exit_batch (net/core/dev.c:12111) [ 11.351795][ T66] ? ops_exit_list (net/core/net_namespace.c:171 (discriminator 3)) [ 11.351931][ T66] cleanup_net (net/core/net_namespace.c:647 (discriminator 3)) [ 11.352064][ T66] ? __pfx_lock_acquire.part.0 (kernel/locking/lockdep.c:5814) [ 11.352199][ T66] ? __pfx_cleanup_net (net/core/net_namespace.c:592) [ 11.352337][ T66] ? trace_lock_acquire (./include/trace/events/lock.h:24 (discriminator 37)) [ 11.352473][ T66] ? lock_acquire (kernel/locking/lockdep.c:5822) [ 11.352607][ T66] ? process_one_work (kernel/workqueue.c:3205) [ 11.352746][ T66] process_one_work (kernel/workqueue.c:3229) [ 11.352882][ T66] ? __pfx___lock_release (kernel/locking/lockdep.c:5501) [ 11.353016][ T66] ? __pfx_process_one_work (kernel/workqueue.c:3131) [ 11.353152][ T66] ? assign_work (kernel/workqueue.c:1200) [ 11.353286][ T66] worker_thread (kernel/workqueue.c:3304 kernel/workqueue.c:3391) [ 11.353421][ T66] ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) [ 11.353587][ T66] ? __pfx_worker_thread (kernel/workqueue.c:3337) [ 11.353718][ T66] ? __pfx_worker_thread (kernel/workqueue.c:3337) [ 11.353850][ T66] kthread (kernel/kthread.c:389) [ 11.353952][ T66] ? __pfx_kthread (kernel/kthread.c:342) [ 11.354084][ T66] ret_from_fork (arch/x86/kernel/process.c:147) [ 11.354223][ T66] ? __pfx_kthread (kernel/kthread.c:342) Finger prints: page_pool_item_uninit:page_pool_release:page_pool_destroy:veth_napi_del_range:veth_close print_report:kasan_report:page_pool_item_uninit:page_pool_release:page_pool_destroy