BUG: sleeping function called from invalid context at net/core/sock.c:2502 in_atomic(): 1, irqs_disabled(): 0, pid: 8332, name: syz-executor7 2 locks held by syz-executor7/8332: #0: (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [] spin_lock include/linux/spinlock.h:302 [inline] #0: (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [] zap_pte_range mm/memory.c:1125 [inline] #0: (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [] zap_pmd_range mm/memory.c:1258 [inline] #0: (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [] zap_pud_range mm/memory.c:1279 [inline] #0: (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [] unmap_page_range+0x7c6/0x17a0 mm/memory.c:1300 #1: (rcu_callback){......}, at: [] __rcu_reclaim kernel/rcu/rcu.h:108 [inline] #1: (rcu_callback){......}, at: [] rcu_do_batch kernel/rcu/tree.c:2789 [inline] #1: (rcu_callback){......}, at: [] invoke_rcu_callbacks kernel/rcu/tree.c:3053 [inline] #1: (rcu_callback){......}, at: [] __rcu_process_callbacks kernel/rcu/tree.c:3020 [inline] #1: (rcu_callback){......}, at: [] rcu_process_callbacks+0x98e/0x12b0 kernel/rcu/tree.c:3037 Preemption disabled at:[ 102.833469] [] spin_lock include/linux/spinlock.h:302 [inline] Preemption disabled at:[ 102.833469] [] zap_pte_range mm/memory.c:1125 [inline] Preemption disabled at:[ 102.833469] [] zap_pmd_range mm/memory.c:1258 [inline] Preemption disabled at:[ 102.833469] [] zap_pud_range mm/memory.c:1279 [inline] Preemption disabled at:[ 102.833469] [] unmap_page_range+0x7c6/0x17a0 mm/memory.c:1300 CPU: 0 PID: 8332 Comm: syz-executor7 Not tainted 4.9.124-g09eb2ba #35 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 ffff8801db207cd8 ffffffff81eb95e9 ffffffff814ca426 0000000000000000 0000000000000101 ffff8801a64b6000 ffff8801a64b6000 ffff8801db207d10 ffffffff81426851 ffff8801a64b6000 ffffffff840f88a0 00000000000009c6 Call Trace: [ 102.885374] [] __dump_stack lib/dump_stack.c:15 [inline] [ 102.885374] [] dump_stack+0xc1/0x128 lib/dump_stack.c:51 [] ___might_sleep.cold.123+0x1bc/0x1f5 kernel/sched/core.c:7988 [] __might_sleep+0x95/0x1a0 kernel/sched/core.c:7945 [] lock_sock_nested+0x34/0x120 net/core/sock.c:2502 [] lock_sock include/net/sock.h:1404 [inline] [] inet_shutdown+0x69/0x360 net/ipv4/af_inet.c:823 [] pppol2tp_session_close+0xa0/0xe0 net/l2tp/l2tp_ppp.c:441 [] l2tp_tunnel_closeall+0x231/0x350 net/l2tp/l2tp_core.c:1368 [] l2tp_tunnel_destruct+0x2f2/0x590 net/l2tp/l2tp_core.c:1324 [] __sk_destruct+0x55/0x590 net/core/sock.c:1428 [] __rcu_reclaim kernel/rcu/rcu.h:118 [inline] [] rcu_do_batch kernel/rcu/tree.c:2789 [inline] [] invoke_rcu_callbacks kernel/rcu/tree.c:3053 [inline] [] __rcu_process_callbacks kernel/rcu/tree.c:3020 [inline] [] rcu_process_callbacks+0x8ae/0x12b0 kernel/rcu/tree.c:3037 [] __do_softirq+0x210/0x940 kernel/softirq.c:288 [] invoke_softirq kernel/softirq.c:368 [inline] [] irq_exit+0x114/0x150 kernel/softirq.c:409 [] exiting_irq arch/x86/include/asm/apic.h:669 [inline] [] smp_apic_timer_interrupt+0x81/0xa0 arch/x86/kernel/apic/apic.c:962 [] apic_timer_interrupt+0xa0/0xb0 arch/x86/entry/entry_64.S:648 [ 103.016286] [] ? __read_once_size include/linux/compiler.h:243 [inline] [ 103.016286] [] ? compound_head include/linux/page-flags.h:143 [inline] [ 103.016286] [] ? PageAnon include/linux/page-flags.h:386 [inline] [ 103.016286] [] ? zap_pte_range mm/memory.c:1155 [inline] [ 103.016286] [] ? zap_pmd_range mm/memory.c:1258 [inline] [ 103.016286] [] ? zap_pud_range mm/memory.c:1279 [inline] [ 103.016286] [] ? unmap_page_range+0xc15/0x17a0 mm/memory.c:1300 [] PageAnon include/linux/page-flags.h:387 [inline] [] zap_pte_range mm/memory.c:1155 [inline] [] zap_pmd_range mm/memory.c:1258 [inline] [] zap_pud_range mm/memory.c:1279 [inline] [] unmap_page_range+0xc41/0x17a0 mm/memory.c:1300 [] unmap_single_vma+0x101/0x260 mm/memory.c:1345 [] unmap_vmas+0x102/0x1d0 mm/memory.c:1375 [] exit_mmap+0x214/0x3f0 mm/mmap.c:3020 [] __mmput kernel/fork.c:884 [inline] [] mmput+0xf3/0x2d0 kernel/fork.c:906 [] exit_mm kernel/exit.c:514 [inline] [] do_exit+0x906/0x27b0 kernel/exit.c:820 [] do_group_exit+0x111/0x340 kernel/exit.c:937 [] get_signal+0x4cf/0x1450 kernel/signal.c:2321 [] do_signal+0x87/0x19f0 arch/x86/kernel/signal.c:807 [] exit_to_usermode_loop+0xe1/0x120 arch/x86/entry/common.c:157 [] prepare_exit_to_usermode arch/x86/entry/common.c:191 [inline] [] syscall_return_slowpath arch/x86/entry/common.c:260 [inline] [] do_syscall_32_irqs_on arch/x86/entry/common.c:331 [inline] [] do_fast_syscall_32+0x5c3/0x870 arch/x86/entry/common.c:387 [] entry_SYSENTER_compat+0x90/0xa2 arch/x86/entry/entry_64_compat.S:137 ================================= [ INFO: inconsistent lock state ] 4.9.124-g09eb2ba #35 Tainted: G W --------------------------------- inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. syz-executor7/8332 [HC0[0]:SC1[3]:HE1:SE0] takes: (sk_lock-AF_PPPOX){+.?.+.}, at: [] lock_sock include/net/sock.h:1404 [inline] (sk_lock-AF_PPPOX){+.?.+.}, at: [] inet_shutdown+0x69/0x360 net/ipv4/af_inet.c:823 mark_held_locks+0xc7/0x130 kernel/locking/lockdep.c:2660 __trace_hardirqs_on_caller kernel/locking/lockdep.c:2689 [inline] trace_hardirqs_on_caller+0x38b/0x590 kernel/locking/lockdep.c:2736 trace_hardirqs_on+0xd/0x10 kernel/locking/lockdep.c:2743 __local_bh_enable_ip+0x6a/0xd0 kernel/softirq.c:190 local_bh_enable include/linux/bottom_half.h:31 [inline] lock_sock_nested+0xdc/0x120 net/core/sock.c:2512 lock_sock include/net/sock.h:1404 [inline] pppol2tp_connect+0xd9/0x18f0 net/l2tp/l2tp_ppp.c:590 SYSC_connect+0x1b8/0x300 net/socket.c:1575 SyS_connect+0x24/0x30 net/socket.c:1556 do_syscall_32_irqs_on arch/x86/entry/common.c:325 [inline] do_fast_syscall_32+0x2f7/0x870 arch/x86/entry/common.c:387 entry_SYSENTER_compat+0x90/0xa2 arch/x86/entry/entry_64_compat.S:137 irq event stamp: 2898 hardirqs last enabled at (2898): [] restore_regs_and_iret+0x0/0x1d hardirqs last disabled at (2897): [] common_interrupt+0x9b/0xa0 arch/x86/entry/entry_64.S:461 softirqs last enabled at (550): [] spin_unlock_bh include/linux/spinlock.h:352 [inline] softirqs last enabled at (550): [] release_sock+0x14e/0x1c0 net/core/sock.c:2531 softirqs last disabled at (2833): [] invoke_softirq kernel/softirq.c:368 [inline] softirqs last disabled at (2833): [] irq_exit+0x114/0x150 kernel/softirq.c:409 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(sk_lock-AF_PPPOX); lock(sk_lock-AF_PPPOX); *** DEADLOCK *** 2 locks held by syz-executor7/8332: #0: (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [] spin_lock include/linux/spinlock.h:302 [inline] #0: (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [] zap_pte_range mm/memory.c:1125 [inline] #0: (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [] zap_pmd_range mm/memory.c:1258 [inline] #0: (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [] zap_pud_range mm/memory.c:1279 [inline] #0: (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [] unmap_page_range+0x7c6/0x17a0 mm/memory.c:1300 #1: (rcu_callback){......}, at: [] __rcu_reclaim kernel/rcu/rcu.h:108 [inline] #1: (rcu_callback){......}, at: [] rcu_do_batch kernel/rcu/tree.c:2789 [inline] #1: (rcu_callback){......}, at: [] invoke_rcu_callbacks kernel/rcu/tree.c:3053 [inline] #1: (rcu_callback){......}, at: [] __rcu_process_callbacks kernel/rcu/tree.c:3020 [inline] #1: (rcu_callback){......}, at: [] rcu_process_callbacks+0x98e/0x12b0 kernel/rcu/tree.c:3037 stack backtrace: CPU: 0 PID: 8332 Comm: syz-executor7 Tainted: G W 4.9.124-g09eb2ba #35 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 ffff8801db207a58 ffffffff81eb95e9 ffff8801a64b6000 ffffffff855fb6a0 ffff8801a64b6918 ffff8801a64b6938 0000000000000000 ffff8801db207ac8 ffffffff81429ccd 0000000000000003 0000000000000001 ffff880100000000 Call Trace: [ 103.444963] [] __dump_stack lib/dump_stack.c:15 [inline] [ 103.444963] [] dump_stack+0xc1/0x128 lib/dump_stack.c:51 [] print_usage_bug.cold.57+0x327/0x421 kernel/locking/lockdep.c:2387 [] valid_state kernel/locking/lockdep.c:2400 [inline] [] mark_lock_irq kernel/locking/lockdep.c:2602 [inline] [] mark_lock+0xcc6/0x1280 kernel/locking/lockdep.c:3065 [] mark_irqflags kernel/locking/lockdep.c:2923 [inline] [] __lock_acquire+0xd40/0x4070 kernel/locking/lockdep.c:3302 [] lock_acquire+0x130/0x3e0 kernel/locking/lockdep.c:3756 [] lock_sock_nested+0xc6/0x120 net/core/sock.c:2511 [] lock_sock include/net/sock.h:1404 [inline] [] inet_shutdown+0x69/0x360 net/ipv4/af_inet.c:823 [] pppol2tp_session_close+0xa0/0xe0 net/l2tp/l2tp_ppp.c:441 [] l2tp_tunnel_closeall+0x231/0x350 net/l2tp/l2tp_core.c:1368 [] l2tp_tunnel_destruct+0x2f2/0x590 net/l2tp/l2tp_core.c:1324 [] __sk_destruct+0x55/0x590 net/core/sock.c:1428 [] __rcu_reclaim kernel/rcu/rcu.h:118 [inline] [] rcu_do_batch kernel/rcu/tree.c:2789 [inline] [] invoke_rcu_callbacks kernel/rcu/tree.c:3053 [inline] [] __rcu_process_callbacks kernel/rcu/tree.c:3020 [inline] [] rcu_process_callbacks+0x8ae/0x12b0 kernel/rcu/tree.c:3037 [] __do_softirq+0x210/0x940 kernel/softirq.c:288 [] invoke_softirq kernel/softirq.c:368 [inline] [] irq_exit+0x114/0x150 kernel/softirq.c:409 [] exiting_irq arch/x86/include/asm/apic.h:669 [inline] [] smp_apic_timer_interrupt+0x81/0xa0 arch/x86/kernel/apic/apic.c:962 [] apic_timer_interrupt+0xa0/0xb0 arch/x86/entry/entry_64.S:648 [ 103.616340] [] ? __read_once_size include/linux/compiler.h:243 [inline] [ 103.616340] [] ? compound_head include/linux/page-flags.h:143 [inline] [ 103.616340] [] ? PageAnon include/linux/page-flags.h:386 [inline] [ 103.616340] [] ? zap_pte_range mm/memory.c:1155 [inline] [ 103.616340] [] ? zap_pmd_range mm/memory.c:1258 [inline] [ 103.616340] [] ? zap_pud_range mm/memory.c:1279 [inline] [ 103.616340] [] ? unmap_page_range+0xc15/0x17a0 mm/memory.c:1300 [] PageAnon include/linux/page-flags.h:387 [inline] [] zap_pte_range mm/memory.c:1155 [inline] [] zap_pmd_range mm/memory.c:1258 [inline] [] zap_pud_range mm/memory.c:1279 [inline] [] unmap_page_range+0xc41/0x17a0 mm/memory.c:1300 [] unmap_single_vma+0x101/0x260 mm/memory.c:1345 [] unmap_vmas+0x102/0x1d0 mm/memory.c:1375 [] exit_mmap+0x214/0x3f0 mm/mmap.c:3020 [] __mmput kernel/fork.c:884 [inline] [] mmput+0xf3/0x2d0 kernel/fork.c:906 [] exit_mm kernel/exit.c:514 [inline] [] do_exit+0x906/0x27b0 kernel/exit.c:820 [] do_group_exit+0x111/0x340 kernel/exit.c:937 [] get_signal+0x4cf/0x1450 kernel/signal.c:2321 [] do_signal+0x87/0x19f0 arch/x86/kernel/signal.c:807 [] exit_to_usermode_loop+0xe1/0x120 arch/x86/entry/common.c:157 [] prepare_exit_to_usermode arch/x86/entry/common.c:191 [inline] [] syscall_return_slowpath arch/x86/entry/common.c:260 [inline] [] do_syscall_32_irqs_on arch/x86/entry/common.c:331 [inline] [] do_fast_syscall_32+0x5c3/0x870 arch/x86/entry/common.c:387 [] entry_SYSENTER_compat+0x90/0xa2 arch/x86/entry/entry_64_compat.S:137 BUG: unable to handle kernel NULL pointer dereference at 0000000000000080 IP: [] l2tp_session_free+0x11c/0x200 net/l2tp/l2tp_core.c:1765 PGD 1b61b0067 PUD 1d457d067 PMD 0 Oops: 0002 [#1] PREEMPT SMP KASAN Dumping ftrace buffer: (ftrace buffer empty) Modules linked in: CPU: 0 PID: 8328 Comm: syz-executor3 Tainted: G W 4.9.124-g09eb2ba #35 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 task: ffff8801c767e000 task.stack: ffff8801c20f8000 RIP: 0010:[] [] l2tp_session_free+0x11c/0x200 net/l2tp/l2tp_core.c:1765 RSP: 0018:ffff8801c20ffc88 EFLAGS: 00010246 RAX: dffffc0000000000 RBX: ffff8801cccacc80 RCX: 0000000000000000 RDX: 1ffff100398642b0 RSI: ffffffff836c4711 RDI: ffff8801cc321580 RBP: ffff8801c20ffca8 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: ffff8801cc321400 R13: ffff8801cccacc88 R14: 0000000000000000 R15: 0000000000000000 FS: 0000000000000000(0000) GS:ffff8801db200000(0063) knlGS:0000000008f3a900 CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 CR2: 0000000000000080 CR3: 00000001cc128000 CR4: 00000000001606f0 Stack: ffff8801d483dd80 ffff8801cccacc80 ffff8801d483e150 ffff8801d483e058 ffff8801c20ffcd0 ffffffff836cc022 ffff8801d483e1c0 ffff8801d483dd80 ffffffff836cbf50 ffff8801c20ffd08 ffffffff830281f5 ffff8801d483e1c0 Call Trace: [] l2tp_session_dec_refcount_1 net/l2tp/l2tp_core.h:297 [inline] [] pppol2tp_session_destruct+0xd2/0x110 net/l2tp/l2tp_ppp.c:460 [] __sk_destruct+0x55/0x590 net/core/sock.c:1428 [] sk_destruct+0x63/0x80 net/core/sock.c:1463 [] __sk_free+0x4f/0x220 net/core/sock.c:1471 [] sk_free+0x2b/0x40 net/core/sock.c:1482 [] sock_put include/net/sock.h:1588 [inline] [] pppol2tp_release+0x239/0x2e0 net/l2tp/l2tp_ppp.c:501 [] __sock_release+0xd7/0x260 net/socket.c:605 [] sock_close+0x19/0x20 net/socket.c:1059 [] __fput+0x263/0x700 fs/file_table.c:208 [] ____fput+0x15/0x20 fs/file_table.c:244 [] task_work_run+0x10c/0x180 kernel/task_work.c:116 [] tracehook_notify_resume include/linux/tracehook.h:191 [inline] [] exit_to_usermode_loop+0xfc/0x120 arch/x86/entry/common.c:161 [] prepare_exit_to_usermode arch/x86/entry/common.c:191 [inline] [] syscall_return_slowpath arch/x86/entry/common.c:260 [inline] [] do_syscall_32_irqs_on arch/x86/entry/common.c:331 [inline] [] do_fast_syscall_32+0x5c3/0x870 arch/x86/entry/common.c:387 [] entry_SYSENTER_compat+0x90/0xa2 arch/x86/entry/entry_64_compat.S:137 Code: 49 8d bc 24 80 01 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 0f 85 c6 00 00 00 4d 8b b4 24 80 01 00 00 41 ff 8e 80 00 00 00 74 69 e8 a5 c5 c9 fd 4c 89 ea 48 b8 00 RIP [] l2tp_session_free+0x11c/0x200 net/l2tp/l2tp_core.c:1765 RSP CR2: 0000000000000080 ---[ end trace 6d6047c1956f5b50 ]---