Re: general protection fault in try_to_wake_up

From: Petr Mladek
Date: Tue Apr 03 2018 - 04:56:22 EST


On Tue 2018-04-03 10:50:02, Petr Mladek wrote:
> On Thu 2018-03-29 09:01:02, syzbot wrote:
> > Hello,
> >
> > syzbot hit the following crash on upstream commit
> > bcfc1f4554662d8f2429ac8bd96064a59c149754 (Sat Mar 24 16:50:12 2018 +0000)
> > Merge tag 'pinctrl-v4.16-3' of
> > git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
> > syzbot dashboard link:
> > https://syzkaller.appspot.com/bug?extid=d1fe9b7b917f2715c7d4
> >
> > syzkaller reproducer:
> > https://syzkaller.appspot.com/x/repro.syz?id=4649457446551552
> > Raw console output:
> > https://syzkaller.appspot.com/x/log.txt?id=4909621332410368
> > Kernel config:
> > https://syzkaller.appspot.com/x/.config?id=-5034017172441945317
> > compiler: gcc (GCC) 7.1.1 20170620
> >
> > IMPORTANT: if you fix the bug, please add the following tag to the commit:
> > Reported-by: syzbot+d1fe9b7b917f2715c7d4@xxxxxxxxxxxxxxxxxxxxxxxxx
> > It will help syzbot understand when the bug is fixed. See footer for
> > details.
> > If you forward the report, please keep this part and the footer.
> >
> > IPVS: ftp: loaded support on port[0] = 21
> > kasan: CONFIG_KASAN_INLINE enabled
> > kasan: GPF could be caused by NULL-ptr deref or user memory access
> > kasan: CONFIG_KASAN_INLINE enabled
> > kasan: GPF could be caused by NULL-ptr deref or user memory access
> > general protection fault: 0000 [#1] SMP KASAN
>
> This is already 2nd level fault. I wonder if KASAN or lockdep should
> have already been disabled at this point. Adding some more people
> into CC.

Ah, there seem to be more related reports, see
https://lkml.kernel.org/r/CACT4Y+ZJ2QD7MPy4hB-M=mz2LuVu3bRbLg1QdY=z=+Su1QWMqg@xxxxxxxxxxxxxx

I am sorry for the noise. My mail client did not put the other replies
in a single thread from some reasons.

Best Regards,
Petr

>
> > Dumping ftrace buffer:
> > (ftrace buffer empty)
> > Modules linked in:
> > CPU: 0 PID: 4170 Comm: syz-executor0 Not tainted 4.16.0-rc6+ #1
> > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> > Google 01/01/2011
> > RIP: 0010:__lock_acquire+0x209/0x3e00 kernel/locking/lockdep.c:3320
> > RSP: 0018:ffff8801db206f60 EFLAGS: 00010002
> > RAX: 078e0401078e0401 RBX: 0000000000000000 RCX: 0000000000000000
> > RDX: 1ffff100389fe583 RSI: 0000000000000000 RDI: ffff8801c4ff2c18
> > RBP: ffff8801db2072f0 R08: ffffffff814d839c R09: 0000000000000001
> > R10: 0000000000000000 R11: ffff8801c4ff2c10 R12: 0000000000000000
> > R13: 0000000000000001 R14: 0000000000000000 R15: ffff8801b793c440
> > FS: 00000000014fa940(0000) GS:ffff8801db200000(0000) knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 00000000004cb4e0 CR3: 00000001b7980002 CR4: 00000000001606f0
> > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> > Call Trace:
> > <IRQ>
> > lock_acquire+0x1d5/0x580 kernel/locking/lockdep.c:3920
> > __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
> > _raw_spin_lock_irqsave+0x96/0xc0 kernel/locking/spinlock.c:152
> > try_to_wake_up+0xbc/0x15f0 kernel/sched/core.c:1989
> > default_wake_function+0x30/0x50 kernel/sched/core.c:3693
> > autoremove_wake_function+0x78/0x350 kernel/sched/wait.c:377
> > __wake_up_common+0x18e/0x780 kernel/sched/wait.c:97
> > __wake_up_common_lock+0x1b4/0x310 kernel/sched/wait.c:125
> > __wake_up+0xe/0x10 kernel/sched/wait.c:149
> > wake_up_klogd_work_func+0x4a/0x70 kernel/printk/printk.c:2869
> > irq_work_run_list+0x184/0x240 kernel/irq_work.c:155
> > irq_work_tick+0x136/0x1a0 kernel/irq_work.c:181
> > update_process_times+0x48/0x60 kernel/time/timer.c:1639
> > tick_sched_handle+0x85/0x160 kernel/time/tick-sched.c:162
> > tick_sched_timer+0x42/0x120 kernel/time/tick-sched.c:1194
> > __run_hrtimer kernel/time/hrtimer.c:1349 [inline]
> > __hrtimer_run_queues+0x39c/0xec0 kernel/time/hrtimer.c:1411
> > hrtimer_interrupt+0x2a5/0x6f0 kernel/time/hrtimer.c:1469
> > local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1025 [inline]
> > smp_apic_timer_interrupt+0x14a/0x700 arch/x86/kernel/apic/apic.c:1050
> > apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:857
> > </IRQ>
> > RIP: 0010:arch_local_irq_restore arch/x86/include/asm/paravirt.h:778
> > [inline]
> > RIP: 0010:console_unlock+0xb18/0xfb0 kernel/printk/printk.c:2403
> > RSP: 0018:ffff8801b79068d8 EFLAGS: 00000293 ORIG_RAX: ffffffffffffff12
> > RAX: ffff8801b793c440 RBX: 0000000000000200 RCX: ffffffff815a8d6f
> > RDX: 0000000000000000 RSI: 1ffff10036f279af RDI: 0000000000000293
> > RBP: ffff8801b7906a40 R08: 1ffff10036f20ce9 R09: 0000000000000000
> > R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
> > R13: 0000000000000000 R14: ffffffff83ba15e0 R15: dffffc0000000000
> > vprintk_emit+0x5c3/0xb90 kernel/printk/printk.c:1907
>
> raw_spin_lock() succeeded here. Therefore lockdep was still working
> at this stage.
>
> > vprintk_default+0x28/0x30 kernel/printk/printk.c:1947
> > vprintk_func+0x57/0xc0 kernel/printk/printk_safe.c:379
> > printk+0xaa/0xca kernel/printk/printk.c:1980
> > kasan_die_handler+0x3d/0x3f arch/x86/mm/kasan_init_64.c:248
> > notifier_call_chain+0x136/0x2c0 kernel/notifier.c:93
> > __atomic_notifier_call_chain kernel/notifier.c:183 [inline]
> > atomic_notifier_call_chain+0x77/0x140 kernel/notifier.c:193
> > notify_die+0x18c/0x280 kernel/notifier.c:549
>
> It must have been general protection fault as well.



> Best Regards,
> Petr
>
> > do_general_protection+0x331/0x3e0 arch/x86/kernel/traps.c:558
> > general_protection+0x25/0x50 arch/x86/entry/entry_64.S:1150
> > RIP: 0010:find_entry.isra.14+0x9f/0x1d0 fs/proc/proc_sysctl.c:119
> > RSP: 0018:ffff8801b7906fc8 EFLAGS: 00010202
> > RAX: 00f1c08020f1c080 RBX: ffff8801c4f95058 RCX: ffffffff81d29eae
> > RDX: 0000000000000000 RSI: ffff8801b8991678 RDI: ffff8801c4f95070
> > RBP: ffff8801b7907008 R08: 1ffff10036f20d55 R09: 0000000000000004
> > R10: ffff8801b7906f70 R11: 0000000000000000 R12: ffff8801b89915f8
> > R13: dffffc0000000000 R14: 078e0401078e0401 R15: ffff8801b8991678
> > find_subdir+0xa8/0x170 fs/proc/proc_sysctl.c:923
> > get_subdir fs/proc/proc_sysctl.c:977 [inline]
> > __register_sysctl_table+0x6d5/0x10b0 fs/proc/proc_sysctl.c:1327
> > register_net_sysctl+0x29/0x30 net/sysctl_net.c:120
> > mpls_dev_sysctl_register+0x1cf/0x2e0 net/mpls/af_mpls.c:1369
> > mpls_add_dev net/mpls/af_mpls.c:1420 [inline]
> > mpls_dev_notify+0x2af/0x980 net/mpls/af_mpls.c:1542
> > notifier_call_chain+0x136/0x2c0 kernel/notifier.c:93
> > __raw_notifier_call_chain kernel/notifier.c:394 [inline]
> > raw_notifier_call_chain+0x2d/0x40 kernel/notifier.c:401
> > call_netdevice_notifiers_info+0x32/0x70 net/core/dev.c:1707
> > call_netdevice_notifiers net/core/dev.c:1725 [inline]
> > register_netdevice+0xd40/0x1020 net/core/dev.c:7929
> > register_netdev+0x1a/0x30 net/core/dev.c:8014
> > sit_init_net+0x384/0xa70 net/ipv6/sit.c:1852
> > ops_init+0x10a/0x570 net/core/net_namespace.c:118
> > setup_net+0x351/0x760 net/core/net_namespace.c:302
> > copy_net_ns+0x238/0x580 net/core/net_namespace.c:426
> > create_new_namespaces+0x425/0x880 kernel/nsproxy.c:107
> > unshare_nsproxy_namespaces+0xae/0x1e0 kernel/nsproxy.c:206
> > SYSC_unshare kernel/fork.c:2407 [inline]
> > SyS_unshare+0x653/0xfa0 kernel/fork.c:2357
> > do_syscall_64+0x281/0x940 arch/x86/entry/common.c:287
> > entry_SYSCALL_64_after_hwframe+0x42/0xb7
> > RIP: 0033:0x457327
> > RSP: 002b:00007ffdd0bf1928 EFLAGS: 00000202 ORIG_RAX: 0000000000000110
> > RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 0000000000457327
> > RDX: 0000000000000000 RSI: 00007ffdd0bf1900 RDI: 0000000040000000
> > RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000001
> > R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000410710
> > R13: 00000000004107a0 R14: 0000000000000000 R15: 0000000000000000
> > Code: 48 85 c0 4c 8b 9d e8 fc ff ff 8b 8d e0 fc ff ff 44 8b 8d d8 fc ff ff
> > 4c 8b 85 d0 fc ff ff 44 8b 95 c8 fc ff ff 0f 84 9b 07 00 00 <f0> ff 80 38 01
> > 00 00 49 8d bf 70 08 00 00 48 ba 00 00 00 00 00
> > RIP: __lock_acquire+0x209/0x3e00 kernel/locking/lockdep.c:3320 RSP:
> > ffff8801db206f60
> > ---[ end trace b962f2b4a8ee2930 ]---
> >
> >
> > ---
> > This bug is generated by a dumb bot. It may contain errors.
> > See https://goo.gl/tpsmEJ for details.
> > Direct all questions to syzkaller@xxxxxxxxxxxxxxxxx
> >
> > syzbot will keep track of this bug report.
> > If you forgot to add the Reported-by tag, once the fix for this bug is
> > merged
> > into any tree, please reply to this email with:
> > #syz fix: exact-commit-title
> > If you want to test a patch for this bug, please reply with:
> > #syz test: git://repo/address.git branch
> > and provide the patch inline or as an attachment.
> > To mark this as a duplicate of another syzbot report, please reply with:
> > #syz dup: exact-subject-of-another-report
> > If it's a one-off invalid bug report, please reply with:
> > #syz invalid
> > Note: if the crash happens again, it will cause creation of a new bug
> > report.
> > Note: all commands must start from beginning of the line in the email body.