WARNING in set_restore_sigmask

From: Dmitry Vyukov
Date: Fri Jan 29 2016 - 04:17:04 EST


Hello,

I've got the following WARNING while running syzkaller fuzzer:

------------[ cut here ]------------
WARNING: CPU: 2 PID: 10905 at ./arch/x86/include/asm/thread_info.h:236
sigsuspend+0x18e/0x1f0()
Modules linked in:
CPU: 2 PID: 10905 Comm: syz-executor Not tainted 4.5.0-rc1+ #300
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
00000000ffffffff ffff88006139fe38 ffffffff82be118d 0000000000000000
ffff88006d054740 ffffffff867387e0 ffff88006139fe78 ffffffff813536d9
ffffffff813839ce ffffffff867387e0 00000000000000ec 0000000020000000
Call Trace:
[< inline >] __dump_stack lib/dump_stack.c:15
[<ffffffff82be118d>] dump_stack+0x6f/0xa2 lib/dump_stack.c:50
[<ffffffff813536d9>] warn_slowpath_common+0xd9/0x140 kernel/panic.c:482
[<ffffffff81353909>] warn_slowpath_null+0x29/0x30 kernel/panic.c:515
[< inline >] set_restore_sigmask
./arch/x86/include/asm/thread_info.h:236
[<ffffffff813839ce>] sigsuspend+0x18e/0x1f0 kernel/signal.c:3513
[< inline >] SYSC_rt_sigsuspend kernel/signal.c:3533
[<ffffffff81387d7c>] SyS_rt_sigsuspend+0xac/0xe0 kernel/signal.c:3523
[<ffffffff86653236>] entry_SYSCALL_64_fastpath+0x16/0x7a
arch/x86/entry/entry_64.S:185
---[ end trace da5c27e3b7defd96 ]---

Unfortunately I cannot reproduce it. But the only two programs that
contain rt_sigsuspend that were executed before the warning are:
https://gist.githubusercontent.com/dvyukov/cacf219b67de2aa08733/raw/de22347ab1ebd0c90dc7f8af9b348ba143b7ba6c/gistfile1.txt
https://gist.githubusercontent.com/dvyukov/2b419fac83636e7ba0e3/raw/0b32b477180f385d6430b2186f1e474c3bb5a829/gistfile1.txt
Note that most syscalls there are redherring, because I don't have
/dev/audio7 nor /dev/fd5. So ioctls are fail, and shmget also fails.
These programs call exit(0) and can SIGSEGV concurrently, though.

I am on commit 92e963f50fc74041b5e9e744c330dca48e04f08d