2016-05-21 6:13 GMT+03:00 Bin Liu <binmlist@xxxxxxxxx>: > Hi, > > On Fri, May 20, 2016 at 4:20 PM, Matwey V. Kornilov <matwey@xxxxxxxxxx> wrote: >> 2016-05-21 0:12 GMT+03:00 Bin Liu <b-liu@xxxxxx>: >>> Hi, >>> >>> On Sat, May 21, 2016 at 12:05:06AM +0300, Matwey V. Kornilov wrote: >>>> By the way, is it ok that function musb_rx_dma_iso_cppi41 uses >>>> hw_ep->tx_channel? I would suppose that it should use rx_channel >>>> instead. >>> >>> I just got here, and am wondering the same. But the question is why just >>> your case hit the problem. I will try to look at it more next week. >>> >>> I had an impression the linux-usb@ has a discussion before about >>> rx/tx-channel messing up, will have to look it up. >>> >> >> Thank you. >> If you need additional info, I can use kgdb with this issue. > > After reviewed the code, it must be hw_ep->rx_channel instead. It is likely a > bug caused by commit 069a3fd (usb: musb: Remove ifdefs for musb_host_rx > in musb_host.c part1). Please test with the following patch. > I've just tested this patch. Indeed, it helps to avoid kernel panic. Now, I can interact with my webcam and watch video-stream in xawtv. It would be great if the patch could become a part of 4.6.x stable tree. > Regards, > -Bin. > > -----8<--------- > diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c > index 2f8ad7f..9b2553c 100644 > --- a/drivers/usb/musb/musb_host.c > +++ b/drivers/usb/musb/musb_host.c > @@ -1551,7 +1551,7 @@ static int musb_rx_dma_iso_cppi41(struct > dma_controller *dma, > struct urb *urb, > size_t len) > { > - struct dma_channel *channel = hw_ep->tx_channel; > + struct dma_channel *channel = hw_ep->rx_channel; > void __iomem *epio = hw_ep->regs; > dma_addr_t *buf; > u32 length, res; > -- With best regards, Matwey V. Kornilov. Sternberg Astronomical Institute, Lomonosov Moscow State University, Russia 119991, Moscow, Universitetsky pr-k 13, +7 (495) 9392382 -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html