From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4AB1CECAAA3 for ; Fri, 26 Aug 2022 07:19:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245061AbiHZHT2 (ORCPT ); Fri, 26 Aug 2022 03:19:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50306 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244483AbiHZHT1 (ORCPT ); Fri, 26 Aug 2022 03:19:27 -0400 Received: from bmailout1.hostsharing.net (bmailout1.hostsharing.net [IPv6:2a01:37:1000::53df:5f64:0]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 42287D2B24; Fri, 26 Aug 2022 00:19:26 -0700 (PDT) Received: from h08.hostsharing.net (h08.hostsharing.net [83.223.95.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "*.hostsharing.net", Issuer "RapidSSL TLS DV RSA Mixed SHA256 2020 CA-1" (verified OK)) by bmailout1.hostsharing.net (Postfix) with ESMTPS id 4D13530000947; Fri, 26 Aug 2022 09:19:24 +0200 (CEST) Received: by h08.hostsharing.net (Postfix, from userid 100393) id 3DC764F33A; Fri, 26 Aug 2022 09:19:24 +0200 (CEST) Date: Fri, 26 Aug 2022 09:19:24 +0200 From: Lukas Wunner To: Marek Szyprowski Cc: "David S. Miller" , Jakub Kicinski , Paolo Abeni , Eric Dumazet , netdev@vger.kernel.org, linux-usb@vger.kernel.org, Steve Glendinning , UNGLinuxDriver@microchip.com, Oliver Neukum , Andre Edich , Oleksij Rempel , Martyn Welch , Gabriel Hojda , Christoph Fritz , Lino Sanfilippo , Philipp Rosenberger , Heiner Kallweit , Andrew Lunn , Russell King , Ferry Toth , Krzysztof Kozlowski , 'Linux Samsung SOC' Subject: Re: [PATCH net-next v3 5/7] usbnet: smsc95xx: Forward PHY interrupts to PHY driver to avoid polling Message-ID: <20220826071924.GA21264@wunner.de> References: <748ac44eeb97b209f66182f3788d2a49d7bc28fe.1652343655.git.lukas@wunner.de> <20220519190841.GA30869@wunner.de> <31baa38c-b2c7-10cd-e9cd-eee140f01788@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Fri, Aug 26, 2022 at 08:51:58AM +0200, Marek Szyprowski wrote: > On 19.05.2022 23:22, Marek Szyprowski wrote: > > On 19.05.2022 21:08, Lukas Wunner wrote: > >> On Tue, May 17, 2022 at 12:18:45PM +0200, Marek Szyprowski wrote: > >>> This patch landed in the recent linux next-20220516 as commit > >>> 1ce8b37241ed ("usbnet: smsc95xx: Forward PHY interrupts to PHY > >>> driver to > >>> avoid polling"). Unfortunately it breaks smsc95xx usb ethernet > >>> operation > >>> after system suspend-resume cycle. On the Odroid XU3 board I got the > >>> following warning in the kernel log: > >>> > >>> # time rtcwake -s10 -mmem > >>> rtcwake: wakeup from "mem" using /dev/rtc0 at Tue May 17 09:16:07 2022 > >>> PM: suspend entry (deep) > >>> Filesystems sync: 0.001 seconds > >>> Freezing user space processes ... (elapsed 0.002 seconds) done. > >>> OOM killer disabled. > >>> Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. > >>> printk: Suspending console(s) (use no_console_suspend to debug) > >>> smsc95xx 4-1.1:1.0 eth0: entering SUSPEND2 mode > >>> smsc95xx 4-1.1:1.0 eth0: Failed to read reg index 0x00000114: -113 > >>> smsc95xx 4-1.1:1.0 eth0: Error reading MII_ACCESS > >>> smsc95xx 4-1.1:1.0 eth0: __smsc95xx_mdio_read: MII is busy > >>> ------------[ cut here ]------------ > >>> WARNING: CPU: 2 PID: 73 at drivers/net/phy/phy.c:946 > >>> phy_state_machine+0x98/0x28c > >> [...] > >>> It looks that the driver's suspend/resume operations might need some > >>> adjustments. After the system suspend/resume cycle the driver is not > >>> operational anymore. Reverting the $subject patch on top of linux > >>> next-20220516 restores ethernet operation after system suspend/resume. > >> Thanks a lot for the report. It seems the PHY is signaling a link > >> change > >> shortly before system sleep and by the time the phy_state_machine() > >> worker > >> gets around to handle it, the device has already been suspended and thus > >> refuses any further USB requests with -EHOSTUNREACH (-113): [...] > >> Assuming the above theory is correct, calling phy_stop_machine() > >> after usbnet_suspend() would be sufficient to fix the issue. > >> It cancels the phy_state_machine() worker. > >> > >> The small patch below does that. Could you give it a spin? > > > > That's it. Your analysis is right and the patch fixes the issue. Thanks! > > > > Feel free to add: > > > > Reported-by: Marek Szyprowski > > > > Tested-by: Marek Szyprowski > > Gentle ping for the final patch... Hm? Actually this issue is supposed to be fixed by mainline commit 1758bde2e4aa ("net: phy: Don't trigger state machine while in suspend"). The initial fix attempt that you're replying to should not be necessary with that commit. Are you still seeing issues even with 1758bde2e4aa applied? Or are you maybe using a custom downstream tree which is missing that commit? Thanks, Lukas