]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ethtool: linkstate: fix unbalanced ethnl_ops_complete() on PHY lookup error
authorJakub Kicinski <kuba@kernel.org>
Tue, 26 May 2026 15:35:26 +0000 (08:35 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 28 May 2026 00:42:08 +0000 (17:42 -0700)
linkstate_prepare_data() calls ethnl_req_get_phydev() before
ethnl_ops_begin(), but routes its error path through "goto out"
which calls ethnl_ops_complete().

Fixes: fe55b1d401c6 ("ethtool: linkstate: migrate linkstate functions to support multi-PHY setups")
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Link: https://patch.msgid.link/20260526153533.2779187-4-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ethtool/linkstate.c

index 8a5985fd77123613daef7d87c5dfcd4b7e90a097..24569e92942cdf73f45fa779175aa0ec5be5b29e 100644 (file)
@@ -106,10 +106,8 @@ static int linkstate_prepare_data(const struct ethnl_req_info *req_base,
 
        phydev = ethnl_req_get_phydev(req_base, tb, ETHTOOL_A_LINKSTATE_HEADER,
                                      info->extack);
-       if (IS_ERR(phydev)) {
-               ret = PTR_ERR(phydev);
-               goto out;
-       }
+       if (IS_ERR(phydev))
+               return PTR_ERR(phydev);
 
        ret = ethnl_ops_begin(dev);
        if (ret < 0)