summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorSondhauß, Jan <Jan.Sondhauss@wago.com>2022-03-23 11:47:33 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-04-08 15:23:43 +0300
commit585dc196a08fccdcd1b7fcf473cf566b34c4b840 (patch)
treea0c12112cb9639b81e8cc1e8881234522fe898b4 /kernel
parenteec20eea27a089eacde240e1661c0da2b29fef4e (diff)
downloadlinux-585dc196a08fccdcd1b7fcf473cf566b34c4b840.tar.xz
drivers: ethernet: cpsw: fix panic when interrupt coaleceing is set via ethtool
[ Upstream commit 2844e2434385819f674d1fb4130c308c50ba681e ] cpsw_ethtool_begin directly returns the result of pm_runtime_get_sync when successful. pm_runtime_get_sync returns -error code on failure and 0 on successful resume but also 1 when the device is already active. So the common case for cpsw_ethtool_begin is to return 1. That leads to inconsistent calls to pm_runtime_put in the call-chain so that pm_runtime_put is called one too many times and as result leaving the cpsw dev behind suspended. The suspended cpsw dev leads to an access violation later on by different parts of the cpsw driver. Fix this by calling the return-friendly pm_runtime_resume_and_get function. Fixes: d43c65b05b84 ("ethtool: runtime-resume netdev parent in ethnl_ops_begin") Signed-off-by: Jan Sondhauss <jan.sondhauss@wago.com> Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com> Link: https://lore.kernel.org/r/20220323084725.65864-1-jan.sondhauss@wago.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions