Jiri Slaby a99b38
From: Stephen Hemminger <stephen@networkplumber.org>
Jiri Slaby a99b38
Date: Fri, 29 Dec 2017 10:02:52 -0800
Jiri Slaby a99b38
Subject: ethtool: do not print warning for applications using legacy API
Jiri Slaby a99b38
Git-commit: 71891e2dab6b55a870f8f7735e44a2963860b5c6
Jiri Slaby a99b38
Patch-mainline: v4.15-rc8
Jiri Slaby a99b38
References: networking-stable-18_01_12
Jiri Slaby a99b38
Jiri Slaby a99b38
In kernel log ths message appears on every boot:
Jiri Slaby a99b38
 "warning: `NetworkChangeNo' uses legacy ethtool link settings API,
Jiri Slaby a99b38
  link modes are only partially reported"
Jiri Slaby a99b38
Jiri Slaby a99b38
When ethtool link settings API changed, it started complaining about
Jiri Slaby a99b38
usages of old API. Ironically, the original patch was from google but
Jiri Slaby a99b38
the application using the legacy API is chrome.
Jiri Slaby a99b38
Jiri Slaby a99b38
Linux ABI is fixed as much as possible. The kernel must not break it
Jiri Slaby a99b38
and should not complain about applications using legacy API's.
Jiri Slaby a99b38
This patch just removes the warning since using legacy API's
Jiri Slaby a99b38
in Linux is perfectly acceptable.
Jiri Slaby a99b38
Jiri Slaby a99b38
Fixes: 3f1ac7a700d0 ("net: ethtool: add new ETHTOOL_xLINKSETTINGS API")
Jiri Slaby a99b38
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Jiri Slaby a99b38
Signed-off-by: David Decotigny <decot@googlers.com>
Jiri Slaby a99b38
Signed-off-by: David S. Miller <davem@davemloft.net>
Jiri Slaby a99b38
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Jiri Slaby a99b38
---
Jiri Slaby a99b38
 net/core/ethtool.c |   15 ++-------------
Jiri Slaby a99b38
 1 file changed, 2 insertions(+), 13 deletions(-)
Jiri Slaby a99b38
Jiri Slaby a99b38
--- a/net/core/ethtool.c
Jiri Slaby a99b38
+++ b/net/core/ethtool.c
Jiri Slaby a99b38
@@ -754,15 +754,6 @@ static int ethtool_set_link_ksettings(st
Jiri Slaby a99b38
 	return dev->ethtool_ops->set_link_ksettings(dev, &link_ksettings);
Jiri Slaby a99b38
 }
Jiri Slaby a99b38
 
Jiri Slaby a99b38
-static void
Jiri Slaby a99b38
-warn_incomplete_ethtool_legacy_settings_conversion(const char *details)
Jiri Slaby a99b38
-{
Jiri Slaby a99b38
-	char name[sizeof(current->comm)];
Jiri Slaby a99b38
-
Jiri Slaby a99b38
-	pr_info_once("warning: `%s' uses legacy ethtool link settings API, %s\n",
Jiri Slaby a99b38
-		     get_task_comm(name, current), details);
Jiri Slaby a99b38
-}
Jiri Slaby a99b38
-
Jiri Slaby a99b38
 /* Query device for its ethtool_cmd settings.
Jiri Slaby a99b38
  *
Jiri Slaby a99b38
  * Backward compatibility note: for compatibility with legacy ethtool,
Jiri Slaby a99b38
@@ -789,10 +780,8 @@ static int ethtool_get_settings(struct n
Jiri Slaby a99b38
 							   &link_ksettings);
Jiri Slaby a99b38
 		if (err < 0)
Jiri Slaby a99b38
 			return err;
Jiri Slaby a99b38
-		if (!convert_link_ksettings_to_legacy_settings(&cmd,
Jiri Slaby a99b38
-							       &link_ksettings))
Jiri Slaby a99b38
-			warn_incomplete_ethtool_legacy_settings_conversion(
Jiri Slaby a99b38
-				"link modes are only partially reported");
Jiri Slaby a99b38
+		convert_link_ksettings_to_legacy_settings(&cmd,
Jiri Slaby a99b38
+							  &link_ksettings);
Jiri Slaby a99b38
 
Jiri Slaby a99b38
 		/* send a sensible cmd tag back to user */
Jiri Slaby a99b38
 		cmd.cmd = ETHTOOL_GSET;