[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4bca61b8-71a0-4a8b-b02a-a8e6f5a620de@suse.com>
Date: Thu, 4 Sep 2025 09:52:03 +0200
From: Oliver Neukum <oneukum@...e.com>
To: Xu Yang <xu.yang_2@....com>, Oliver Neukum <oneukum@...e.com>
Cc: andrew+netdev@...n.ch, davem@...emloft.net, edumazet@...gle.com,
kuba@...nel.org, pabeni@...hat.com, linux-usb@...r.kernel.org,
netdev@...r.kernel.org
Subject: Re: [PATCH] net: usbnet: skip info->stop() callback if suspend_count
is not 0
On 9/4/25 09:26, Xu Yang wrote:
>>> /* allow minidriver to stop correctly (wireless devices to turn off
>>> * radio etc) */
>>> - if (info->stop) {
>>> + if (info->stop && !dev->suspend_count) {
>> ... for !dev->suspend_count to be false
> The suspend_count won't go to 0 because there is no chance to call
> usbnet_resume() if the USB device is physically disconnected from the
> USB port during system suspend.
Sorry for the delay.
While you are correct that a physical disconnect
will make the PM call fail, you cannot assume that
a physical disconnect is the only reason disconnect()
would be called.
It would also be called if
- the module is unloaded
- usbfs is used to disconnect the driver from the device
Hence it seems to me that using suspend_count is false.
You need to use the return of the PM operation.
Regards
Oliver
Powered by blists - more mailing lists