Do away with link status polling on LAN95xx USB Ethernet and rely on interrupts instead, thereby reducing bus traffic, CPU overhead and improving interface bringup latency. Link to v1: https://lore.kernel.org/netdev/cover.1651037513.git.lukas@xxxxxxxxx/ Changes since v1: * Patch [4/7]: * Silence "Error updating MAC full duplex mode" warning if it's caused by hot-removal. (Oleksij Rempel) * Explain in commit message why a semicolon on a line by itself is temporarily added in smsc95xx_status(). (Andrew Lunn) * Patch [5/7]: * Eliminate a checkpatch "no space before tabs" warning. * Explain in commit message why the call to phy_init_hw() is moved in smsc95xx_resume(). * Patch [6/7]: * Expand commit message to explain in greater detail why caching the interrupt mask is beneficial. (Andrew Lunn) Lukas Wunner (7): usbnet: Run unregister_netdev() before unbind() again usbnet: smsc95xx: Don't clear read-only PHY interrupt usbnet: smsc95xx: Don't reset PHY behind PHY driver's back usbnet: smsc95xx: Avoid link settings race on interrupt reception usbnet: smsc95xx: Forward PHY interrupts to PHY driver to avoid polling net: phy: smsc: Cache interrupt mask net: phy: smsc: Cope with hot-removal in interrupt handler drivers/net/phy/smsc.c | 28 +++--- drivers/net/usb/asix_devices.c | 6 +- drivers/net/usb/smsc95xx.c | 157 ++++++++++++++++----------------- drivers/net/usb/usbnet.c | 6 +- 4 files changed, 93 insertions(+), 104 deletions(-) -- 2.35.2