Re: [PATCH v2 3/3] usb: core: kcov: collect coverage from usb complete callback

From: Andrey Konovalov
Date: Fri Mar 13 2020 - 10:56:51 EST


On Thu, Mar 12, 2020 at 10:39 AM Peter Chen <peter.chen@xxxxxxx> wrote:
>
> On 20-03-09 19:27:06, Andrey Konovalov wrote:
> > This patch adds kcov_remote_start/stop() callbacks around the urb
> > complete() callback that is executed in softirq context when dummy_hcd
> > is in use. As the result, kcov can be used to collect coverage from those
> > those callbacks, which is used to facilitate coverage-guided fuzzing with
>
> Typo, One more "those"

Will fix in v3, thanks Peter!

>
> Peter
>
> > syzkaller.
> >
> > Signed-off-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx>
> > ---
> > drivers/usb/core/hcd.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
> > index aa45840d8273..de624c47e190 100644
> > --- a/drivers/usb/core/hcd.c
> > +++ b/drivers/usb/core/hcd.c
> > @@ -31,6 +31,7 @@
> > #include <linux/types.h>
> > #include <linux/genalloc.h>
> > #include <linux/io.h>
> > +#include <linux/kcov.h>
> >
> > #include <linux/phy/phy.h>
> > #include <linux/usb.h>
> > @@ -1645,7 +1646,9 @@ static void __usb_hcd_giveback_urb(struct urb *urb)
> >
> > /* pass ownership to the completion handler */
> > urb->status = status;
> > + kcov_remote_start_usb((u64)urb->dev->bus->busnum);
> > urb->complete(urb);
> > + kcov_remote_stop();
> >
> > usb_anchor_resume_wakeups(anchor);
> > atomic_dec(&urb->use_count);
> > --
> > 2.25.1.481.gfbce0eb801-goog
> >
>
> --
>
> Thanks,
> Peter Chen