On Wed, Aug 06, 2025, Selvarasu Ganesan wrote:
On 8/6/2025 5:08 AM, Thinh Nguyen wrote:
On Mon, Aug 04, 2025, Selvarasu Ganesan wrote:
From: Akash M akash.m5@samsung.com
This commit addresses a rarely observed endpoint command timeout which causes kernel panic due to warn when 'panic_on_warn' is enabled and unnecessary call trace prints when 'panic_on_warn' is disabled. It is seen during fast software-controlled connect/disconnect testcases. The following is one such endpoint command timeout that we observed:
Connect
->dwc3_thread_interrupt ->dwc3_ep0_interrupt ->configfs_composite_setup ->composite_setup ->usb_ep_queue ->dwc3_gadget_ep0_queue ->__dwc3_gadget_ep0_queue ->__dwc3_ep0_do_control_data ->dwc3_send_gadget_ep_cmd
Disconnect
->dwc3_thread_interrupt ->dwc3_gadget_disconnect_interrupt ->dwc3_ep0_reset_state ->dwc3_ep0_end_control_data ->dwc3_send_gadget_ep_cmd
In the issue scenario, in Exynos platforms, we observed that control transfers for the previous connect have not yet been completed and end transfer command sent as a part of the disconnect sequence and processing of USB_ENDPOINT_HALT feature request from the host timeout. This maybe an expected scenario since the controller is processing EP commands sent as a part of the previous connect. It maybe better to remove WARN_ON in all places where device endpoint commands are sent to avoid unnecessary kernel panic due to warn.
Fixes: e192cc7b5239 ("usb: dwc3: gadget: move cmd_endtransfer to extra function") Fixes: 72246da40f37 ("usb: Introduce DesignWare USB3 DRD Driver") Fixes: c7fcdeb2627c ("usb: dwc3: ep0: simplify EP0 state machine") Fixes: f0f2b2a2db85 ("usb: dwc3: ep0: push ep0state into xfernotready processing") Fixes: 2e3db064855a ("usb: dwc3: ep0: drop XferNotReady(DATA) support") Cc: stable@vger.kernel.org
I don't think this is a fix patch. You're just replacing WARN* with dev_warn* without doing any recovery. Let's remove the Fixes and table tag. Also, can we replace dev_warn* with dev_err* because these are critical errors that may put the controller in a bad state.
Thanks, Thinh
Hi Thinh,
Thanks for your review comments. Yeah we agree. This is not a fix patch. Sure we will update new patchset with replace dev_warn* with dev_err*.
As for dropping the stable tag, It would be better these changes to be applied across all stable kernels, so shall we keep stable tag in place?
That's fine with me.
BR, Thinh