On Mon, Jan 8, 2018 at 11:15 AM, Alan Stern [off-list ref] wrote:
Both dwc2_hsotg and ehci-hcd use the tasklets embedded in the
giveback_urb_bh member of struct usb_hcd. See usb_hcd_giveback_urb()
in drivers/usb/core/hcd.c; the calls are
else if (high_prio_bh)
tasklet_hi_schedule(&bh->bh);
else
tasklet_schedule(&bh->bh);
As it turns out, high_prio_bh gets set for interrupt and isochronous
URBs but not for bulk and control URBs. The DVB driver in question
uses bulk transfers.
Ok, so we could try out something like the appended?
NOTE! I have not tested this at all. It LooksObvious(tm), but...
Linus