From: Maxime Chevallier Date: Tue, 27 Aug 2024 09:23:13 +0000 (+0200) Subject: net: ethtool: cable-test: Release RTNL when the PHY isn't found X-Git-Tag: v6.12-rc1~232^2~154 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=ad78337cb20c1a52781a7b329b1a747d91be3491;p=linux-2.6-block.git net: ethtool: cable-test: Release RTNL when the PHY isn't found Use the correct logic to check for the presence of a PHY device, and jump to a label that correctly releases RTNL in case of an error, as we are holding RTNL at that point. Fixes: 3688ff3077d3 ("net: ethtool: cable-test: Target the command to the requested PHY") Closes: https://lore.kernel.org/netdev/20240827104825.5cbe0602@fedora-3.home/T/#m6bc49cdcc5cfab0d162516b92916b944a01c833f Signed-off-by: Maxime Chevallier Reported-by: Dan Carpenter Reviewed-by: Larysa Zaremba Reviewed-by: Florian Fainelli Link: https://patch.msgid.link/20240827092314.2500284-1-maxime.chevallier@bootlin.com Signed-off-by: Jakub Kicinski --- diff --git a/net/ethtool/cabletest.c b/net/ethtool/cabletest.c index 3a91b65c1f9a..f22051f33868 100644 --- a/net/ethtool/cabletest.c +++ b/net/ethtool/cabletest.c @@ -342,9 +342,9 @@ int ethnl_act_cable_test_tdr(struct sk_buff *skb, struct genl_info *info) phydev = ethnl_req_get_phydev(&req_info, tb[ETHTOOL_A_CABLE_TEST_TDR_HEADER], info->extack); - if (!IS_ERR_OR_NULL(phydev)) { + if (IS_ERR_OR_NULL(phydev)) { ret = -EOPNOTSUPP; - goto out_dev_put; + goto out_rtnl; } ops = ethtool_phy_ops;