This patchset extends kcov to allow collecting coverage from interrupts and then uses the new functionality to collect coverage from usbhid code. What I'm not sure yet about this change is if we actually want to selectively annotate some parts of the USB stack that are executed in interrupt context, or maybe we can do this with some common approach. For example patch #2 in this patchset annotates all functions that are passed as completion callbacks to usb_fill_*() in drivers/hid/usbhid. Maybe instead we could redefine usb_fill_*() in a way that would handle all such cases without manual annotations. Any suggestions are welcome. This has allowed to find at least one new HID bug [1], which was recently fixed by Alan [2]. [1] https://syzkaller.appspot.com/bug?extid=09ef48aa58261464b621 [2] https://patchwork.kernel.org/patch/11283319/ This patchset has been pushed to the public Linux kernel Gerrit instance: https://linux-review.googlesource.com/c/linux/kernel/git/torvalds/linux/+/2225 Signed-off-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx> Andrey Konovalov (2): kcov: collect coverage from interrupts HID: usbhid: kcov: add annotations for coverage collection Documentation/dev-tools/kcov.rst | 16 +-- drivers/hid/usbhid/hid-core.c | 25 +++- drivers/hid/usbhid/usbkbd.c | 15 ++- drivers/hid/usbhid/usbmouse.c | 7 +- drivers/usb/gadget/udc/dummy_hcd.c | 1 + include/linux/sched.h | 3 + kernel/kcov.c | 196 +++++++++++++++++++---------- lib/Kconfig.debug | 9 ++ 8 files changed, 192 insertions(+), 80 deletions(-) -- 2.24.1.735.g03f4e72817-goog