mirror of
https://github.com/reactos/syzkaller.git
synced 2025-02-26 06:35:31 +00:00

During rcu stalls and cpu lockups kernel loops in some part of code, usually across several functions. When the stall is detected, traceback points to a random stack within the looping code. We generally take the top function in the stack (with few exceptions) as the bug identity. As the result stalls with the same root would produce multiple reports in different functions, which is bad. Instead we identify a representative function deeper in the stack. For most syscalls it can be the syscall entry function (e.g. SyS_timer_create). However, for highly discriminated functions syscalls like ioctl/read/write/connect we take the previous function (e.g. for connect the one that points to exact protocol, or for ioctl the one that is related to the device). Fixes #710