Hello community, here is the log from the commit of package ethtool for openSUSE:Factory checked in at 2020-01-23 16:09:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ethtool (Old) and /work/SRC/openSUSE:Factory/.ethtool.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ethtool" Thu Jan 23 16:09:06 2020 rev:60 rq:765772 version:5.4 Changes: -------- --- /work/SRC/openSUSE:Factory/ethtool/ethtool.changes 2019-11-07 23:09:13.836044249 +0100 +++ /work/SRC/openSUSE:Factory/.ethtool.new.26092/ethtool.changes 2020-01-23 16:10:11.603610216 +0100 @@ -1,0 +2,10 @@ +Mon Jan 13 11:46:41 UTC 2020 - Michal Kubecek <mkube...@suse.cz> + +- Update to new upstream release 5.4 + * support Energy Detect Power Down + * Solarflare SFF-8079/8472 eeprom interpretation fixes + * fix compiler warnings with new gcc +- drop "-Wno-unused-parameter" from CFLAGS, these warnings should + be gone now + +------------------------------------------------------------------- Old: ---- ethtool-5.3.tar.sign ethtool-5.3.tar.xz New: ---- ethtool-5.4.tar.sign ethtool-5.4.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ethtool.spec ++++++ --- /var/tmp/diff_new_pack.t4ABmG/_old 2020-01-23 16:10:14.027611653 +0100 +++ /var/tmp/diff_new_pack.t4ABmG/_new 2020-01-23 16:10:14.031611656 +0100 @@ -1,7 +1,7 @@ # # spec file for package ethtool # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: ethtool -Version: 5.3 +Version: 5.4 Release: 0 Summary: Utility for examining and tuning Ethernet-based network interfaces License: GPL-2.0-only @@ -39,7 +39,7 @@ %setup -q %build -export CFLAGS="%optflags -W -Wall -Wstrict-prototypes -Wformat-security -Wpointer-arith -Wno-unused-parameter -Wno-missing-field-initializers" +export CFLAGS="%optflags -W -Wall -Wstrict-prototypes -Wformat-security -Wpointer-arith -Wno-missing-field-initializers" %configure make %{?_smp_mflags} ++++++ ethtool-5.3.tar.xz -> ethtool-5.4.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/NEWS new/ethtool-5.4/NEWS --- old/ethtool-5.3/NEWS 2019-09-23 20:12:13.000000000 +0200 +++ new/ethtool-5.4/NEWS 2020-01-10 19:32:58.000000000 +0100 @@ -1,3 +1,43 @@ +Version 5.4 - January 10, 2020 + + * Feature: ethtool: implement support for Energy Detect Power Down + * Fix: fix arithmetic on pointer to void is a GNU extension warning + * Fix: fix unused parameter warnings in do_version() and show_usage() + * Fix: fix unused parameter warning in find_option() + * Fix: fix unused parameter warning in dump_eeprom() + * Fix: fix unused parameter warning in altera_tse_dump_regs() + * Fix: fix unused parameter warning in sfc_dump_regs() + * Fix: fix unused parameter warning in print_simple_table() + * Fix: fix unused parameter warning in natsemi_dump_regs() + * Fix: fix unused parameter warning in netsemi_dump_eeprom() + * Fix: fix unused parameter warning in ixgbe_dump_regs() + * Fix: fix unused parameter warning in realtek_dump_regs() + * Fix: fix unused parameter warning in lan78xx_dump_regs() + * Fix: fix unused parameter warning in {skge, sky2}_dump_regs() + * Fix: fix unused parameter warning in dsa_dump_regs() + * Fix: fix unused parameter warning in vmxnet3_dump_regs() + * Fix: fix unused parameter warning in st_{mac100, gmac}_dump_regs() + * Fix: fix unused parameter warning in ixgbevf_dump_regs() + * Fix: fix unused parameter warning in fec_8xx_dump_regs() + * Fix: fix unused parameter warning in tg3_dump_{eeprom, regs}() + * Fix: fix unused parameter warning in vioc_dump_regs() + * Fix: fix unused parameter warning in e100_dump_regs() + * Fix: fix unused parameter warning in de2104[01]_dump_regs() + * Fix: fix unused parameter warning in igb_dump_regs() + * Fix: fix unused parameter warning in e1000_dump_regs() + * Fix: fix unused parameter warning in smsc911x_dump_regs() + * Fix: fix unused parameter warning in at76c50x_usb_dump_regs() + * Fix: fix unused parameter warning in fec_dump_regs() + * Fix: fix unused parameter warning in amd8111e_dump_regs() + * Fix: fix unused parameter warning in et131x_dump_regs() + * Fix: fix unused parameter warning in ibm_emac_dump_regs() + * Fix: fix unused parameter warning in ixgb_dump_regs() + * Fix: fix unused parameter warning in fjes_dump_regs() + * Fix: fix unused parameter warning in e1000_get_mac_type() + * Fix: ethtool: correctly interpret bitrate of 255 + * Fix: ethtool: mark 10G Base-ER as SFF-8472 revision 10.4 onwards + * Fix: ethtool: add 0x16 and 0x1c extended compliance codes + Version 5.3 - September 23, 2019 * Feature: igb: dump RR2DCDELAY register * Feature: dump nested registers diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/amd8111e.c new/ethtool-5.4/amd8111e.c --- old/ethtool-5.3/amd8111e.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/amd8111e.c 2019-10-29 18:51:21.000000000 +0100 @@ -152,7 +152,8 @@ #define PHY_SPEED_100 0x3 -int amd8111e_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int amd8111e_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 *reg_buff = (u32 *)regs->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/at76c50x-usb.c new/ethtool-5.4/at76c50x-usb.c --- old/ethtool-5.3/at76c50x-usb.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/at76c50x-usb.c 2019-10-29 18:51:21.000000000 +0100 @@ -12,8 +12,8 @@ " 505AMX", }; -int -at76c50x_usb_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int at76c50x_usb_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u8 version = (u8)(regs->version >> 24); u8 rev_id = (u8)(regs->version); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/configure new/ethtool-5.4/configure --- old/ethtool-5.3/configure 2019-09-23 20:14:31.000000000 +0200 +++ new/ethtool-5.4/configure 2020-01-10 19:37:04.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ethtool 5.3. +# Generated by GNU Autoconf 2.69 for ethtool 5.4. # # Report bugs to <net...@vger.kernel.org>. # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='ethtool' PACKAGE_TARNAME='ethtool' -PACKAGE_VERSION='5.3' -PACKAGE_STRING='ethtool 5.3' +PACKAGE_VERSION='5.4' +PACKAGE_STRING='ethtool 5.4' PACKAGE_BUGREPORT='net...@vger.kernel.org' PACKAGE_URL='' @@ -1247,7 +1247,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ethtool 5.3 to adapt to many kinds of systems. +\`configure' configures ethtool 5.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1313,7 +1313,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ethtool 5.3:";; + short | recursive ) echo "Configuration of ethtool 5.4:";; esac cat <<\_ACEOF @@ -1420,7 +1420,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ethtool configure 5.3 +ethtool configure 5.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1667,7 +1667,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ethtool $as_me 5.3, which was +It was created by ethtool $as_me 5.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2532,7 +2532,7 @@ # Define the identity of the package. PACKAGE='ethtool' - VERSION='5.3' + VERSION='5.4' cat >>confdefs.h <<_ACEOF @@ -4876,7 +4876,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ethtool $as_me 5.3, which was +This file was extended by ethtool $as_me 5.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -4942,7 +4942,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ethtool config.status 5.3 +ethtool config.status 5.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/configure.ac new/ethtool-5.4/configure.ac --- old/ethtool-5.3/configure.ac 2019-09-23 20:08:18.000000000 +0200 +++ new/ethtool-5.4/configure.ac 2020-01-10 19:27:19.000000000 +0100 @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(ethtool, 5.3, net...@vger.kernel.org) +AC_INIT(ethtool, 5.4, net...@vger.kernel.org) AC_PREREQ(2.52) AC_CONFIG_SRCDIR([ethtool.c]) AM_INIT_AUTOMAKE([gnu]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/de2104x.c new/ethtool-5.4/de2104x.c --- old/ethtool-5.3/de2104x.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/de2104x.c 2019-10-29 18:51:21.000000000 +0100 @@ -111,8 +111,8 @@ } } -static void -de21040_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +static void de21040_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 tmp, v, *data = (u32 *)regs->data; @@ -417,8 +417,8 @@ v & (1<<0) ? " Jabber disable\n" : ""); } -static void -de21041_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +static void de21041_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 tmp, v, *data = (u32 *)regs->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/dsa.c new/ethtool-5.4/dsa.c --- old/ethtool-5.3/dsa.c 2019-01-18 19:31:08.000000000 +0100 +++ new/ethtool-5.4/dsa.c 2019-10-29 18:51:21.000000000 +0100 @@ -674,7 +674,8 @@ #undef FIELD #undef REG -int dsa_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int dsa_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { /* DSA per-driver register dump */ if (!dsa_mv88e6xxx_dump_regs(regs)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/e100.c new/ethtool-5.4/e100.c --- old/ethtool-5.3/e100.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/e100.c 2019-10-29 18:51:21.000000000 +0100 @@ -36,8 +36,8 @@ #define CU_CMD 0x00F0 #define RU_CMD 0x0007 -int -e100_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int e100_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 *regs_buff = (u32 *)regs->data; u8 version = (u8)(regs->version >> 24); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/e1000.c new/ethtool-5.4/e1000.c --- old/ethtool-5.3/e1000.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/e1000.c 2019-10-29 18:51:21.000000000 +0100 @@ -254,8 +254,7 @@ e1000_num_macs }; -static enum e1000_mac_type -e1000_get_mac_type(u16 device_id, u8 revision_id) +static enum e1000_mac_type e1000_get_mac_type(u16 device_id) { enum e1000_mac_type mac_type = e1000_undefined; @@ -364,12 +363,12 @@ return mac_type; } -int -e1000_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int e1000_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 *regs_buff = (u32 *)regs->data; u16 hw_device_id = (u16)regs->version; - u8 hw_revision_id = (u8)(regs->version >> 16); + /* u8 hw_revision_id = (u8)(regs->version >> 16); */ u8 version = (u8)(regs->version >> 24); enum e1000_mac_type mac_type; u32 reg; @@ -377,7 +376,7 @@ if (version != 1) return -1; - mac_type = e1000_get_mac_type(hw_device_id, hw_revision_id); + mac_type = e1000_get_mac_type(hw_device_id); if(mac_type == e1000_undefined) return -1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/et131x.c new/ethtool-5.4/et131x.c --- old/ethtool-5.3/et131x.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/et131x.c 2019-10-29 18:51:21.000000000 +0100 @@ -2,7 +2,8 @@ #include <string.h> #include "internal.h" -int et131x_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int et131x_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u8 version = (u8)(regs->version >> 24); u32 *reg = (u32 *)regs->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/ethtool-copy.h new/ethtool-5.4/ethtool-copy.h --- old/ethtool-5.3/ethtool-copy.h 2019-06-14 20:29:16.000000000 +0200 +++ new/ethtool-5.4/ethtool-copy.h 2019-09-24 21:16:06.000000000 +0200 @@ -257,10 +257,32 @@ #define ETHTOOL_PHY_FAST_LINK_DOWN_ON 0 #define ETHTOOL_PHY_FAST_LINK_DOWN_OFF 0xff +/* Energy Detect Power Down (EDPD) is a feature supported by some PHYs, where + * the PHY's RX & TX blocks are put into a low-power mode when there is no + * link detected (typically cable is un-plugged). For RX, only a minimal + * link-detection is available, and for TX the PHY wakes up to send link pulses + * to avoid any lock-ups in case the peer PHY may also be running in EDPD mode. + * + * Some PHYs may support configuration of the wake-up interval for TX pulses, + * and some PHYs may support only disabling TX pulses entirely. For the latter + * a special value is required (ETHTOOL_PHY_EDPD_NO_TX) so that this can be + * configured from userspace (should the user want it). + * + * The interval units for TX wake-up are in milliseconds, since this should + * cover a reasonable range of intervals: + * - from 1 millisecond, which does not sound like much of a power-saver + * - to ~65 seconds which is quite a lot to wait for a link to come up when + * plugging a cable + */ +#define ETHTOOL_PHY_EDPD_DFLT_TX_MSECS 0xffff +#define ETHTOOL_PHY_EDPD_NO_TX 0xfffe +#define ETHTOOL_PHY_EDPD_DISABLE 0 + enum phy_tunable_id { ETHTOOL_PHY_ID_UNSPEC, ETHTOOL_PHY_DOWNSHIFT, ETHTOOL_PHY_FAST_LINK_DOWN, + ETHTOOL_PHY_EDPD, /* * Add your fresh new phy tunable attribute above and remember to update * phy_tunable_strings[] in net/core/ethtool.c @@ -1481,8 +1503,8 @@ ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64, ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65, ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, - ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, - ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, + ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, + ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, /* must be last entry */ __ETHTOOL_LINK_MODE_MASK_NBITS @@ -1712,8 +1734,8 @@ #define ETH_MODULE_SFF_8436 0x4 #define ETH_MODULE_SFF_8436_LEN 256 -#define ETH_MODULE_SFF_8636_MAX_LEN 640 -#define ETH_MODULE_SFF_8436_MAX_LEN 640 +#define ETH_MODULE_SFF_8636_MAX_LEN 640 +#define ETH_MODULE_SFF_8436_MAX_LEN 640 /* Reset flags */ /* The reset() operation must clear the flags for the components which diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/ethtool.8 new/ethtool-5.4/ethtool.8 --- old/ethtool-5.3/ethtool.8 2019-09-23 20:14:33.000000000 +0200 +++ new/ethtool-5.4/ethtool.8 2020-01-10 19:37:06.000000000 +0100 @@ -113,7 +113,7 @@ . hy \\n(HY .. . -.TH ETHTOOL 8 "September 2019" "Ethtool version 5.3" +.TH ETHTOOL 8 "January 2020" "Ethtool version 5.4" .SH NAME ethtool \- query or control network driver and hardware settings . @@ -362,11 +362,17 @@ .A1 on off .BN msecs .RB ] +.RB [ +.B energy\-detect\-power\-down +.A1 on off +.BN msecs +.RB ] .HP .B ethtool \-\-get\-phy\-tunable .I devname .RB [ downshift ] .RB [ fast-link-down ] +.RB [ energy-detect-power-down ] .HP .B ethtool \-\-reset .I devname @@ -1100,6 +1106,24 @@ Sets the period after which the link is reported as down. Note that the PHY may choose the closest supported value. Only on reading back the tunable do you get the actual value. .TE +.TP +.A2 energy-detect-power-down on off +Specifies whether Energy Detect Power Down (EDPD) should be enabled (if supported). +This will put the RX and TX circuit blocks into a low power mode, and the PHY will +wake up periodically to send link pulses to avoid any lock-up situation with a peer +PHY that may also have EDPD enabled. By default, this setting will also enable the +periodic transmission of TX pulses. +.TS +nokeep; +lB l. +.BI msecs \ N + Some PHYs support configuration of the wake-up interval to send TX pulses. + This setting allows the control of this interval, and 0 disables TX pulses + if the PHY supports this. Disabling TX pulses can create a lock-up situation + where neither of the PHYs wakes the other one. If unspecified the default + value (in milliseconds) will be used by the PHY. +.TE +.TP .PD .RE .TP @@ -1122,6 +1146,10 @@ before a broken link is reported as being down. Gets the PHY Fast Link Down status / period. +.TP +.B energy\-detect\-power\-down +Gets the current configured setting for Energy Detect Power Down (if supported). + .RE .TP .B \-\-reset diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/ethtool.8.in new/ethtool-5.4/ethtool.8.in --- old/ethtool-5.3/ethtool.8.in 2019-09-23 20:09:04.000000000 +0200 +++ new/ethtool-5.4/ethtool.8.in 2020-01-10 19:27:46.000000000 +0100 @@ -113,7 +113,7 @@ . hy \\n(HY .. . -.TH ETHTOOL 8 "September 2019" "Ethtool version @VERSION@" +.TH ETHTOOL 8 "January 2020" "Ethtool version @VERSION@" .SH NAME ethtool \- query or control network driver and hardware settings . @@ -362,11 +362,17 @@ .A1 on off .BN msecs .RB ] +.RB [ +.B energy\-detect\-power\-down +.A1 on off +.BN msecs +.RB ] .HP .B ethtool \-\-get\-phy\-tunable .I devname .RB [ downshift ] .RB [ fast-link-down ] +.RB [ energy-detect-power-down ] .HP .B ethtool \-\-reset .I devname @@ -1100,6 +1106,24 @@ Sets the period after which the link is reported as down. Note that the PHY may choose the closest supported value. Only on reading back the tunable do you get the actual value. .TE +.TP +.A2 energy-detect-power-down on off +Specifies whether Energy Detect Power Down (EDPD) should be enabled (if supported). +This will put the RX and TX circuit blocks into a low power mode, and the PHY will +wake up periodically to send link pulses to avoid any lock-up situation with a peer +PHY that may also have EDPD enabled. By default, this setting will also enable the +periodic transmission of TX pulses. +.TS +nokeep; +lB l. +.BI msecs \ N + Some PHYs support configuration of the wake-up interval to send TX pulses. + This setting allows the control of this interval, and 0 disables TX pulses + if the PHY supports this. Disabling TX pulses can create a lock-up situation + where neither of the PHYs wakes the other one. If unspecified the default + value (in milliseconds) will be used by the PHY. +.TE +.TP .PD .RE .TP @@ -1122,6 +1146,10 @@ before a broken link is reported as being down. Gets the PHY Fast Link Down status / period. +.TP +.B energy\-detect\-power\-down +Gets the current configured setting for Energy Detect Power Down (if supported). + .RE .TP .B \-\-reset diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/ethtool.c new/ethtool-5.4/ethtool.c --- old/ethtool-5.3/ethtool.c 2019-08-09 18:16:25.000000000 +0200 +++ new/ethtool-5.4/ethtool.c 2019-10-29 18:51:21.000000000 +0100 @@ -470,7 +470,7 @@ return flow_type; } -static int do_version(struct cmd_context *ctx) +static int do_version(struct cmd_context *ctx maybe_unused) { fprintf(stdout, PACKAGE " version " VERSION @@ -1275,7 +1275,8 @@ return 0; } -static int dump_eeprom(int geeprom_dump_raw, struct ethtool_drvinfo *info, +static int dump_eeprom(int geeprom_dump_raw, + struct ethtool_drvinfo *info maybe_unused, struct ethtool_eeprom *ee) { if (geeprom_dump_raw) { @@ -4897,6 +4898,30 @@ else fprintf(stdout, "Fast Link Down enabled, %d msecs\n", cont.msecs); + } else if (!strcmp(argp[0], "energy-detect-power-down")) { + struct { + struct ethtool_tunable ds; + u16 msecs; + } cont; + + cont.ds.cmd = ETHTOOL_PHY_GTUNABLE; + cont.ds.id = ETHTOOL_PHY_EDPD; + cont.ds.type_id = ETHTOOL_TUNABLE_U16; + cont.ds.len = 2; + if (send_ioctl(ctx, &cont.ds) < 0) { + perror("Cannot Get PHY Energy Detect Power Down value"); + return 87; + } + + if (cont.msecs == ETHTOOL_PHY_EDPD_DISABLE) + fprintf(stdout, "Energy Detect Power Down: disabled\n"); + else if (cont.msecs == ETHTOOL_PHY_EDPD_NO_TX) + fprintf(stdout, + "Energy Detect Power Down: enabled, TX disabled\n"); + else + fprintf(stdout, + "Energy Detect Power Down: enabled, TX %u msecs\n", + cont.msecs); } else { exit_bad_args(); } @@ -5018,7 +5043,10 @@ return 1; } -static int parse_named_u8(struct cmd_context *ctx, const char *name, u8 *val) +static int parse_named_uint(struct cmd_context *ctx, + const char *name, + unsigned long long *val, + unsigned long long max) { if (ctx->argc < 2) return 0; @@ -5026,7 +5054,7 @@ if (strcmp(*ctx->argp, name)) return 0; - *val = get_uint_range(*(ctx->argp + 1), 0, 0xff); + *val = get_uint_range(*(ctx->argp + 1), 0, max); ctx->argc -= 2; ctx->argp += 2; @@ -5034,6 +5062,30 @@ return 1; } +static int parse_named_u8(struct cmd_context *ctx, const char *name, u8 *val) +{ + unsigned long long val1; + int ret; + + ret = parse_named_uint(ctx, name, &val1, 0xff); + if (ret) + *val = val1; + + return ret; +} + +static int parse_named_u16(struct cmd_context *ctx, const char *name, u16 *val) +{ + unsigned long long val1; + int ret; + + ret = parse_named_uint(ctx, name, &val1, 0xffff); + if (ret) + *val = val1; + + return ret; +} + static int do_set_phy_tunable(struct cmd_context *ctx) { int err = 0; @@ -5041,6 +5093,8 @@ u8 ds_changed = 0, ds_has_cnt = 0, ds_enable = 0; u8 fld_changed = 0, fld_enable = 0; u8 fld_msecs = ETHTOOL_PHY_FAST_LINK_DOWN_ON; + u8 edpd_changed = 0, edpd_enable = 0; + u16 edpd_tx_interval = ETHTOOL_PHY_EDPD_DFLT_TX_MSECS; /* Parse arguments */ if (parse_named_bool(ctx, "downshift", &ds_enable)) { @@ -5050,6 +5104,11 @@ fld_changed = 1; if (fld_enable) parse_named_u8(ctx, "msecs", &fld_msecs); + } else if (parse_named_bool(ctx, "energy-detect-power-down", + &edpd_enable)) { + edpd_changed = 1; + if (edpd_enable) + parse_named_u16(ctx, "msecs", &edpd_tx_interval); } else { exit_bad_args(); } @@ -5074,6 +5133,16 @@ fld_msecs = ETHTOOL_PHY_FAST_LINK_DOWN_OFF; else if (fld_msecs == ETHTOOL_PHY_FAST_LINK_DOWN_OFF) exit_bad_args(); + } else if (edpd_changed) { + if (!edpd_enable) + edpd_tx_interval = ETHTOOL_PHY_EDPD_DISABLE; + else if (edpd_tx_interval == 0) + edpd_tx_interval = ETHTOOL_PHY_EDPD_NO_TX; + else if (edpd_tx_interval > ETHTOOL_PHY_EDPD_NO_TX) { + fprintf(stderr, "'msecs' max value is %d.\n", + (ETHTOOL_PHY_EDPD_NO_TX - 1)); + exit_bad_args(); + } } /* Do it */ @@ -5109,6 +5178,22 @@ perror("Cannot Set PHY Fast Link Down value"); err = 87; } + } else if (edpd_changed) { + struct { + struct ethtool_tunable fld; + u16 msecs; + } cont; + + cont.fld.cmd = ETHTOOL_PHY_STUNABLE; + cont.fld.id = ETHTOOL_PHY_EDPD; + cont.fld.type_id = ETHTOOL_TUNABLE_U16; + cont.fld.len = 2; + cont.msecs = edpd_tx_interval; + err = send_ioctl(ctx, &cont.fld); + if (err < 0) { + perror("Cannot Set PHY Energy Detect Power Down"); + err = 87; + } } return err; @@ -5361,10 +5446,12 @@ " [ tx-timer %d ]\n"}, { "--set-phy-tunable", 1, do_set_phy_tunable, "Set PHY tunable", " [ downshift on|off [count N] ]\n" - " [ fast-link-down on|off [msecs N] ]\n"}, + " [ fast-link-down on|off [msecs N] ]\n" + " [ energy-detect-power-down on|off [msecs N] ]\n"}, { "--get-phy-tunable", 1, do_get_phy_tunable, "Get PHY tunable", " [ downshift ]\n" - " [ fast-link-down ]\n"}, + " [ fast-link-down ]\n" + " [ energy-detect-power-down ]\n"}, { "--reset", 1, do_reset, "Reset components", " [ flags %x ]\n" " [ mgmt ]\n" @@ -5398,7 +5485,7 @@ {} }; -static int show_usage(struct cmd_context *ctx) +static int show_usage(struct cmd_context *ctx maybe_unused) { int i; @@ -5421,7 +5508,7 @@ return 0; } -static int find_option(int argc, char **argp) +static int find_option(char *arg) { const char *opt; size_t len; @@ -5431,8 +5518,7 @@ opt = args[k].opts; for (;;) { len = strcspn(opt, "|"); - if (strncmp(*argp, opt, len) == 0 && - (*argp)[len] == 0) + if (strncmp(arg, opt, len) == 0 && arg[len] == 0) return k; if (opt[len] == 0) @@ -5581,7 +5667,7 @@ ctx->argp++; } - i = find_option(ctx->argc, ctx->argp); + i = find_option(ctx->argp[0]); if (i < 0) exit_bad_args(); @@ -5633,7 +5719,7 @@ if (argc == 0) exit_bad_args(); - k = find_option(argc, argp); + k = find_option(*argp); if (k >= 0) { argp++; argc--; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/ethtool.spec new/ethtool-5.4/ethtool.spec --- old/ethtool-5.3/ethtool.spec 2019-09-23 20:14:34.000000000 +0200 +++ new/ethtool-5.4/ethtool.spec 2020-01-10 19:37:06.000000000 +0100 @@ -1,5 +1,5 @@ Name : ethtool -Version : 5.3 +Version : 5.4 Release : 1 Group : Utilities diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/fec.c new/ethtool-5.4/fec.c --- old/ethtool-5.3/fec.c 2019-03-14 19:34:43.000000000 +0100 +++ new/ethtool-5.4/fec.c 2019-10-29 18:51:21.000000000 +0100 @@ -194,7 +194,8 @@ #undef FIELD #undef REG -int fec_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int fec_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { const u32 *data = (u32 *)regs->data; int offset; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/fec_8xx.c new/ethtool-5.4/fec_8xx.c --- old/ethtool-5.3/fec_8xx.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/fec_8xx.c 2019-10-29 18:51:21.000000000 +0100 @@ -47,7 +47,8 @@ (unsigned long)(offsetof(struct fec, x)), \ #x, f->x) -int fec_8xx_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int fec_8xx_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { struct fec *f = (struct fec *)regs->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/fjes.c new/ethtool-5.4/fjes.c --- old/ethtool-5.3/fjes.c 2017-06-02 19:27:13.000000000 +0200 +++ new/ethtool-5.4/fjes.c 2019-10-29 18:51:21.000000000 +0100 @@ -2,7 +2,8 @@ #include <stdio.h> #include "internal.h" -int fjes_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int fjes_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 *regs_buff = (u32 *)regs->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/ibm_emac.c new/ethtool-5.4/ibm_emac.c --- old/ethtool-5.3/ibm_emac.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/ibm_emac.c 2019-10-29 18:51:21.000000000 +0100 @@ -314,7 +314,8 @@ return p + 1; } -int ibm_emac_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int ibm_emac_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { struct emac_ethtool_regs_hdr *hdr = (struct emac_ethtool_regs_hdr *)regs->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/igb.c new/ethtool-5.4/igb.c --- old/ethtool-5.3/igb.c 2019-07-26 17:15:54.000000000 +0200 +++ new/ethtool-5.4/igb.c 2019-10-29 18:51:21.000000000 +0100 @@ -88,8 +88,8 @@ #define E1000_TCTL_RTLC 0x01000000 /* Re-transmit on late collision */ #define E1000_TCTL_NRTU 0x02000000 /* No Re-transmit on underrun */ -int -igb_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int igb_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 *regs_buff = (u32 *)regs->data; u32 reg; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/internal.h new/ethtool-5.4/internal.h --- old/ethtool-5.3/internal.h 2019-03-14 19:34:43.000000000 +0100 +++ new/ethtool-5.4/internal.h 2019-10-29 18:51:21.000000000 +0100 @@ -23,6 +23,8 @@ #include <sys/ioctl.h> #include <net/if.h> +#define maybe_unused __attribute__((__unused__)) + /* ethtool.h expects these to be defined by <linux/types.h> */ #ifndef HAVE_BE_TYPES typedef uint16_t __be16; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/ixgb.c new/ethtool-5.4/ixgb.c --- old/ethtool-5.3/ixgb.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/ixgb.c 2019-10-29 18:51:21.000000000 +0100 @@ -38,8 +38,8 @@ #define IXGB_RAH_ASEL_SRC 0x00010000 #define IXGB_RAH_AV 0x80000000 -int -ixgb_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int ixgb_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 *regs_buff = (u32 *)regs->data; u8 version = (u8)(regs->version >> 24); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/ixgbe.c new/ethtool-5.4/ixgbe.c --- old/ethtool-5.3/ixgbe.c 2018-08-10 20:43:21.000000000 +0200 +++ new/ethtool-5.4/ixgbe.c 2019-10-29 18:51:21.000000000 +0100 @@ -168,7 +168,8 @@ } int -ixgbe_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +ixgbe_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 *regs_buff = (u32 *)regs->data; u32 regs_buff_len = regs->len / sizeof(*regs_buff); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/ixgbevf.c new/ethtool-5.4/ixgbevf.c --- old/ethtool-5.3/ixgbevf.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/ixgbevf.c 2019-10-29 18:51:21.000000000 +0100 @@ -3,7 +3,8 @@ #include "internal.h" int -ixgbevf_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +ixgbevf_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 *regs_buff = (u32 *)regs->data; u8 version = (u8)(regs->version >> 24); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/lan78xx.c new/ethtool-5.4/lan78xx.c --- old/ethtool-5.3/lan78xx.c 2018-04-16 19:53:04.000000000 +0200 +++ new/ethtool-5.4/lan78xx.c 2019-10-29 18:51:21.000000000 +0100 @@ -2,7 +2,8 @@ #include <string.h> #include "internal.h" -int lan78xx_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int lan78xx_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { unsigned int *lan78xx_reg = (unsigned int *)regs->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/marvell.c new/ethtool-5.4/marvell.c --- old/ethtool-5.3/marvell.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/marvell.c 2019-10-29 18:51:21.000000000 +0100 @@ -118,13 +118,13 @@ printf("\n%s\n", name); printf("---------------\n"); printf("End Address 0x%08X\n", r[0]); - printf("Write Pointer 0x%08X\n", r[1]); - printf("Read Pointer 0x%08X\n", r[2]); - printf("Packet Counter 0x%08X\n", r[3]); - printf("Level 0x%08X\n", r[4]); - printf("Control 0x%08X\n", r[5]); - printf("Control/Test 0x%08X\n", r[6]); - dump_timer("LED", p + 0x20); + printf("Write Pointer 0x%08X\n", r[1]); + printf("Read Pointer 0x%08X\n", r[2]); + printf("Packet Counter 0x%08X\n", r[3]); + printf("Level 0x%08X\n", r[4]); + printf("Control 0x%08X\n", r[5]); + printf("Control/Test 0x%08X\n", r[6]); + dump_timer("LED", r + 8); } static void dump_gmac_fifo(const char *name, const void *p) @@ -259,7 +259,8 @@ printf("General Purpose I/O 0x%08X\n", *(u32 *) (r + 0x15c)); } -int skge_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int skge_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { const u32 *r = (const u32 *) regs->data; int dual = !(regs->data[0x11a] & 1); @@ -379,7 +380,8 @@ } } -int sky2_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int sky2_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { const u16 *r16 = (const u16 *) regs->data; const u32 *r32 = (const u32 *) regs->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/natsemi.c new/ethtool-5.4/natsemi.c --- old/ethtool-5.3/natsemi.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/natsemi.c 2019-10-29 18:51:21.000000000 +0100 @@ -323,7 +323,8 @@ } while (0) int -natsemi_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +natsemi_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 *data = (u32 *)regs->data; u32 tmp; @@ -963,7 +964,8 @@ } int -natsemi_dump_eeprom(struct ethtool_drvinfo *info, struct ethtool_eeprom *ee) +natsemi_dump_eeprom(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_eeprom *ee) { int i; u16 *eebuf = (u16 *)ee->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/realtek.c new/ethtool-5.4/realtek.c --- old/ethtool-5.3/realtek.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/realtek.c 2019-10-29 18:51:21.000000000 +0100 @@ -241,7 +241,8 @@ } int -realtek_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +realtek_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 *data = (u32 *) regs->data; u8 *data8 = (u8 *) regs->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/sfc.c new/ethtool-5.4/sfc.c --- old/ethtool-5.3/sfc.c 2018-06-13 20:23:09.000000000 +0200 +++ new/ethtool-5.4/sfc.c 2019-10-29 18:51:21.000000000 +0100 @@ -3808,8 +3808,7 @@ } static const void * -print_simple_table(unsigned revision, const struct efx_nic_reg_table *table, - const void *buf) +print_simple_table(const struct efx_nic_reg_table *table, const void *buf) { const struct efx_nic_reg_field *field = &table->fields[0]; size_t value_width = (field->width + 3) >> 2; @@ -3891,7 +3890,7 @@ } int -sfc_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +sfc_dump_regs(struct ethtool_drvinfo *info maybe_unused, struct ethtool_regs *regs) { const struct efx_nic_reg *reg; const struct efx_nic_reg_table *table; @@ -3918,7 +3917,7 @@ revision <= table->max_revision) { printf("\n%s:\n", table->name); if (table->field_count == 1) - buf = print_simple_table(revision, table, buf); + buf = print_simple_table(table, buf); else buf = print_complex_table(revision, table, buf); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/sfpid.c new/ethtool-5.4/sfpid.c --- old/ethtool-5.3/sfpid.c 2017-12-06 16:40:27.000000000 +0100 +++ new/ethtool-5.4/sfpid.c 2019-10-29 18:51:21.000000000 +0100 @@ -47,7 +47,7 @@ /* 10G Ethernet Compliance Codes */ if (id[3] & (1 << 7)) printf("%s 10G Ethernet: 10G Base-ER" \ - " [SFF-8472 rev10.4 only]\n", pfx); + " [SFF-8472 rev10.4 onwards]\n", pfx); if (id[3] & (1 << 6)) printf("%s 10G Ethernet: 10G Base-LRM\n", pfx); if (id[3] & (1 << 5)) @@ -185,10 +185,14 @@ printf("%s Extended: 25G Base-CR CA-S\n", pfx); if (id[36] == 0xd) printf("%s Extended: 25G Base-CR CA-N\n", pfx); + if (id[36] == 0x16) + printf("%s Extended: 10Gbase-T with SFI electrical interface\n", pfx); if (id[36] == 0x18) printf("%s Extended: 100G AOC or 25GAUI C2M AOC with worst BER of 10^(-12)\n", pfx); if (id[36] == 0x19) printf("%s Extended: 100G ACC or 25GAUI C2M ACC with worst BER of 10^(-12)\n", pfx); + if (id[36] == 0x1c) + printf("%s Extended: 10Gbase-T Short Reach\n", pfx); } static void sff8079_show_encoding(const __u8 *id) @@ -328,11 +332,24 @@ { sff8079_show_identifier(id); if (((id[0] == 0x02) || (id[0] == 0x03)) && (id[1] == 0x04)) { + unsigned int br_nom, br_min, br_max; + + if (id[12] == 0) { + br_nom = br_min = br_max = 0; + } else if (id[12] == 255) { + br_nom = id[66] * 250; + br_max = id[67]; + br_min = id[67]; + } else { + br_nom = id[12] * 100; + br_max = id[66]; + br_min = id[67]; + } sff8079_show_ext_identifier(id); sff8079_show_connector(id); sff8079_show_transceiver(id); sff8079_show_encoding(id); - sff8079_show_value_with_unit(id, 12, "BR, Nominal", 100, "MBd"); + printf("\t%-41s : %u%s\n", "BR, Nominal", br_nom, "MBd"); sff8079_show_rate_identifier(id); sff8079_show_value_with_unit(id, 14, "Length (SMF,km)", 1, "km"); @@ -348,8 +365,8 @@ sff8079_show_ascii(id, 40, 55, "Vendor PN"); sff8079_show_ascii(id, 56, 59, "Vendor rev"); sff8079_show_options(id); - sff8079_show_value_with_unit(id, 66, "BR margin, max", 1, "%"); - sff8079_show_value_with_unit(id, 67, "BR margin, min", 1, "%"); + printf("\t%-41s : %u%s\n", "BR margin, max", br_max, "%"); + printf("\t%-41s : %u%s\n", "BR margin, min", br_min, "%"); sff8079_show_ascii(id, 68, 83, "Vendor SN"); sff8079_show_ascii(id, 84, 91, "Date code"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/smsc911x.c new/ethtool-5.4/smsc911x.c --- old/ethtool-5.3/smsc911x.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/smsc911x.c 2019-10-29 18:51:21.000000000 +0100 @@ -2,7 +2,8 @@ #include <string.h> #include "internal.h" -int smsc911x_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int smsc911x_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { unsigned int *smsc_reg = (unsigned int *)regs->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/stmmac.c new/ethtool-5.4/stmmac.c --- old/ethtool-5.3/stmmac.c 2017-10-26 20:02:15.000000000 +0200 +++ new/ethtool-5.4/stmmac.c 2019-10-29 18:51:21.000000000 +0100 @@ -18,7 +18,7 @@ #define GMAC_REG_NUM 55 #define GMAC_DMA_REG_NUM 23 -int st_mac100_dump_regs(struct ethtool_drvinfo *info, +int st_mac100_dump_regs(struct ethtool_drvinfo *info maybe_unused, struct ethtool_regs *regs) { int i; @@ -51,7 +51,8 @@ return 0; } -int st_gmac_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int st_gmac_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { int i; unsigned int *stmmac_reg = (unsigned int *)regs->data; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/tg3.c new/ethtool-5.4/tg3.c --- old/ethtool-5.3/tg3.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/tg3.c 2019-10-29 18:51:21.000000000 +0100 @@ -4,8 +4,8 @@ #define TG3_MAGIC 0x669955aa -int -tg3_dump_eeprom(struct ethtool_drvinfo *info, struct ethtool_eeprom *ee) +int tg3_dump_eeprom(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_eeprom *ee) { int i; @@ -23,8 +23,8 @@ return 0; } -int -tg3_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int tg3_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { int i; u32 reg; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/tse.c new/ethtool-5.4/tse.c --- old/ethtool-5.3/tse.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/tse.c 2019-10-29 18:51:21.000000000 +0100 @@ -25,7 +25,7 @@ return 0; } -int altera_tse_dump_regs(struct ethtool_drvinfo *info, +int altera_tse_dump_regs(struct ethtool_drvinfo *info maybe_unused, struct ethtool_regs *regs) { int i; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/vioc.c new/ethtool-5.4/vioc.c --- old/ethtool-5.3/vioc.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/vioc.c 2019-10-29 18:51:21.000000000 +0100 @@ -11,7 +11,8 @@ #define VIOC_REGS_LINE_SIZE sizeof(struct regs_line) -int vioc_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +int vioc_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { unsigned int i; unsigned int num_regs; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ethtool-5.3/vmxnet3.c new/ethtool-5.4/vmxnet3.c --- old/ethtool-5.3/vmxnet3.c 2016-08-24 21:47:26.000000000 +0200 +++ new/ethtool-5.4/vmxnet3.c 2019-10-29 18:51:21.000000000 +0100 @@ -3,7 +3,8 @@ #include "internal.h" int -vmxnet3_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs) +vmxnet3_dump_regs(struct ethtool_drvinfo *info maybe_unused, + struct ethtool_regs *regs) { u32 *regs_buff = (u32 *)regs->data; u32 version = regs->version;