Commit 17c2c87c authored by Prashanth K's avatar Prashanth K Committed by Greg Kroah-Hartman
Browse files

usb: gadget: u_ether: Set is_suspend flag if remote wakeup fails



Currently while UDC suspends, u_ether attempts to remote wakeup
the host if there are any pending transfers. However, if remote
wakeup fails, the UDC remains suspended but the is_suspend flag
is not set. And since is_suspend flag isn't set, the subsequent
eth_start_xmit() would queue USB requests to suspended UDC.

To fix this, bail out from gether_suspend() only if remote wakeup
operation is successful.

Cc: stable <stable@kernel.org>
Fixes: 0a1af6df ("usb: gadget: f_ecm: Add suspend/resume and remote wakeup support")
Signed-off-by: default avatarPrashanth K <prashanth.k@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250212100840.3812153-1-prashanth.k@oss.qualcomm.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c90aad36
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1052,7 +1052,7 @@ void gether_suspend(struct gether *link)
		 * There is a transfer in progress. So we trigger a remote
		 * wakeup to inform the host.
		 */
		ether_wakeup_host(dev->port_usb);
		if (!ether_wakeup_host(dev->port_usb))
			return;
	}
	spin_lock_irqsave(&dev->lock, flags);