]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ethtool: eeprom: add missing ethnl_ops_begin() / _complete() during fallback
authorJakub Kicinski <kuba@kernel.org>
Tue, 26 May 2026 15:35:32 +0000 (08:35 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 28 May 2026 00:42:09 +0000 (17:42 -0700)
All ethtool driver op calls should be sandwiched between
ethnl_ops_begin() / ethnl_ops_complete(). In Netlink eeprom code,
if the paged access failed we fall back to old API, but we
first call _complete() and the fallback never does its own
ethnl_ops_begin(). Move the fallback into the _begin() / _complete()
section.

Fixes: 96d971e307cc ("ethtool: Add fallback to get_module_eeprom from netlink command")
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Link: https://patch.msgid.link/20260526153533.2779187-10-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ethtool/eeprom.c

index a557e3996c851daed4f75d38f434047c9697c1b5..836316df3092c3efe5f84e2914685b3ed28193e6 100644 (file)
@@ -141,12 +141,11 @@ static int eeprom_prepare_data(const struct ethnl_req_info *req_base,
        return 0;
 
 err_ops:
+       if (ret == -EOPNOTSUPP)
+               ret = eeprom_fallback(request, reply);
        ethnl_ops_complete(dev);
 err_free:
        kfree(page_data.data);
-
-       if (ret == -EOPNOTSUPP)
-               return eeprom_fallback(request, reply);
        return ret;
 }