]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
net: lan78xx: fix runtime PM count underflow on link stop
authorOleksij Rempel <o.rempel@pengutronix.de>
Wed, 28 Feb 2024 12:45:17 +0000 (13:45 +0100)
committerSasha Levin <sashal@kernel.org>
Fri, 15 Mar 2024 14:48:14 +0000 (10:48 -0400)
commit550fe716031fc49227e930f520cba7a1a2b814c7
treee8fff0c9622acf98065d2cb24bbfa9590229697e
parentf6edcad58ceacd90b70e93fc6076a3d03a20b4b4
net: lan78xx: fix runtime PM count underflow on link stop

[ Upstream commit 1eecc7ab82c42133b748e1895275942a054a7f67 ]

Current driver has some asymmetry in the runtime PM calls. On lan78xx_open()
it will call usb_autopm_get() and unconditionally usb_autopm_put(). And
on lan78xx_stop() it will call only usb_autopm_put(). So far, it was
working only because this driver do not activate autosuspend by default,
so it was visible only by warning "Runtime PM usage count underflow!".

Since, with current driver, we can't use runtime PM with active link,
execute lan78xx_open()->usb_autopm_put() only in error case. Otherwise,
keep ref counting high as long as interface is open.

Fixes: 55d7de9de6c3 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver")
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/usb/lan78xx.c