On Thu, 12 Dec 2019, Andrey Konovalov wrote: > This change extends kcov remote coverage support to allow collecting > coverage from interrupts in addition to kernel background threads. > > To collect coverage from code that is executed in interrupt context, a > part of that code has to be annotated with kcov_remote_start/stop() in a > similar way as how it is done for global kernel background threads. Then > the handle used for the annotations has to be passed to the > KCOV_REMOTE_ENABLE ioctl. > > Internally this patch adjusts the __sanitizer_cov_trace_pc() compiler > inserted callback to not bail out when called from interrupt context. > kcov_remote_start/stop() are updated to save/restore the current per > task kcov state in a per-cpu area (in case the interrupt came when the > kernel was already collecting coverage in task context). Coverage from > interrupts is collected into pre-allocated per-cpu areas, whose size is > controlled by the new CONFIG_KCOV_IRQ_AREA_SIZE. > > This patch also cleans up some of kcov debug messages. > > Signed-off-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx> > --- > diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c > index 4c9d1e49d5ed..faf84ada71a5 100644 > --- a/drivers/usb/gadget/udc/dummy_hcd.c > +++ b/drivers/usb/gadget/udc/dummy_hcd.c > @@ -38,6 +38,7 @@ > #include <linux/usb/gadget.h> > #include <linux/usb/hcd.h> > #include <linux/scatterlist.h> > +#include <linux/kcov.h> > > #include <asm/byteorder.h> > #include <linux/io.h> That's the only change to this driver. As such, it doesn't appear to be needed, judging by the patch description. Alan Stern