Messages in this thread | | | Subject | Re: [PATCH] musb_host: fix lockup on rxcsr_h_error | From | Sergei Shtylyov <> | Date | Tue, 26 Apr 2016 17:05:08 +0300 |
| |
Hello.
On 4/26/2016 9:45 AM, Max Uvarov wrote:
> Fix soft lockup when resetting remote device attached > to usb host. Configuration: > pppd -> musb hub -> usb-serial -> gms modem > When gsm modem resets, musb rolls in incoming rx interrupts > which does not give any time to other application as result > it totally lock ups. Solution is to keep original logic for RXCSR_H_ERROR > and merge RXCSR_DATAERROR and RXCSR_H_ERROR branches to call same code > for setting rx stall with MUSB_RXCSR_H_WZC_BITS. > > Signed-off-by: Max Uvarov <muvarov@gmail.com> > --- > drivers/usb/musb/musb_host.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c > index c3d5fc9..f82d0ae 100644 > --- a/drivers/usb/musb/musb_host.c > +++ b/drivers/usb/musb/musb_host.c > @@ -1592,14 +1592,13 @@ void musb_host_rx(struct musb *musb, u8 epnum) > > /* stall; record URB status */ > status = -EPIPE; > + } else if (rx_csr & MUSB_RXCSR_DATAERROR || > + rx_csr & MUSB_RXCSR_H_ERROR) {
} else if (rx_csr & (MUSB_RXCSR_DATAERROR | MUSB_RXCSR_H_ERROR)) {
[...]
MBR, Sergei
| |