• Thomas Gleixner's avatar
    alarmtimer: Init nanosleep alarm timer on stack · bd031430
    Thomas Gleixner authored
    syszbot reported the following debugobjects splat:
    
     ODEBUG: object is on stack, but not annotated
     WARNING: CPU: 0 PID: 4185 at lib/debugobjects.c:328
    
     RIP: 0010:debug_object_is_on_stack lib/debugobjects.c:327 [inline]
     debug_object_init+0x17/0x20 lib/debugobjects.c:391
     debug_hrtimer_init kernel/time/hrtimer.c:410 [inline]
     debug_init kernel/time/hrtimer.c:458 [inline]
     hrtimer_init+0x8c/0x410 kernel/time/hrtimer.c:1259
     alarm_init kernel/time/alarmtimer.c:339 [inline]
     alarm_timer_nsleep+0x164/0x4d0 kernel/time/alarmtimer.c:787
     SYSC_clock_nanosleep kernel/time/posix-timers.c:1226 [inline]
     SyS_clock_nanosleep+0x235/0x330 kernel/time/posix-timers.c:1204
     do_syscall_64+0x281/0x940 arch/x86/entry/common.c:287
     entry_SYSCALL_64_after_hwframe+0x42/0xb7
    
    This happens because the hrtimer for the alarm nanosleep is on stack, but
    the code does not use the proper debug objects initialization.
    
    Split out the code for the allocated use cases and invoke
    hrtimer_init_on_stack() for the nanosleep related functions.
    
    Reported-by: syzbot+a3e0726462b2e346a31d@syzkaller.appspotmail.com
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: John Stultz <john.stultz@linaro.org>
    Cc: syzkaller-bugs@googlegroups.com
    Link: https://lkml.kernel.org/r/alpine.DEB.2.21.1803261528270.1585@nanos.tec.linutronix.de
    bd031430
alarmtimer.c 22.5 KB