[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <2e3372fb-5eed-4259-841e-4af5ceeebf76@linux.intel.com>
Date: Mon, 10 Mar 2025 15:54:14 +0200
From: Mathias Nyman <mathias.nyman@...ux.intel.com>
To: Michal Pecio <michal.pecio@...il.com>,
Mathias Nyman <mathias.nyman@...el.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 4/6] usb: xhci: Don't change the status of stalled TDs on
failed Stop EP
On 10.3.2025 10.40, Michal Pecio wrote:
> When the device stalls an endpoint, current TD is assigned -EPIPE
> status and Reset Endpoint is queued. If a Stop Endpoint is pending
> at the time, it will run before Reset Endpoint and fail due to the
> stall. Its handler will change TD's status to -EPROTO before Reset
> Endpoint handler runs and initiates giveback.
>
> Check if the stall has already been handled and don't try to do it
> again. Since xhci_handle_halted_endpoint() performs this check too,
> not overwriting td->status is the only difference.
>
> I haven't seen this case yet, but I have seen a related one where
> the xHC has already executed Reset Endpoint, EP Context state is
> now Stopped and EP_HALTED is set. If the xHC took a bit longer to
> execute Reset Endpoint, said case would become this one.
>
> Signed-off-by: Michal Pecio <michal.pecio@...il.com>
Makes sense, nice improvement
Thanks
Mathias
Powered by blists - more mailing lists