Re: [PATCH 1/4] xhci: don't start a halted endpoint before its new dequeue is set

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 14, 2014 at 07:23:49PM +0200, Mathias Nyman wrote:
> A halted endpoint ring must first be reset, then move the ring
> dequeue pointer past the problematic TRB. If we start the ring too
> early after reset, but before moving the dequeue pointer we
> will end up executing the same problematic TRB again.
> 
> As we always issue a set transfer dequeue command after a reset
> endpoint command we can skip starting endpoint rings at reset endpoint
> command completion.
> 
> Without this fix we end up trying to handle the same faulty TD for
> contol endpoints. causing timeout, and failing testusb ctrl_out write
> tests.
> 
> Fixes: bcef3fd (USB: xhci: Handle errors that cause endpoint halts.)
> Cc: <stable@xxxxxxxxxxxxxxx> # v2.6.33+

this one is something else, here you go:

Fixes: e9df17e (USB: xhci: Correct assumptions about number of rings per endpoint.)
Cc: <stable@xxxxxxxxxxxxxxx> #v2.6.35

> Tested-by: Felipe Balbi <balbi@xxxxxx>
> Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
> ---
>  drivers/usb/host/xhci-ring.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
> index bc6fcbc..d6646db 100644
> --- a/drivers/usb/host/xhci-ring.c
> +++ b/drivers/usb/host/xhci-ring.c
> @@ -1069,7 +1069,6 @@ static void xhci_handle_cmd_reset_ep(struct xhci_hcd *xhci, int slot_id,
>  	} else {
>  		/* Clear our internal halted state and restart the ring(s) */
>  		xhci->devs[slot_id]->eps[ep_index].ep_state &= ~EP_HALTED;
> -		ring_doorbell_for_active_rings(xhci, slot_id, ep_index);
>  	}
>  }
>  
> -- 
> 1.8.3.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
balbi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux