ethtool: update to 6.2
Release notes: - Feature: link down event statistics (no option) - Feature: JSON output for coalesce (-c) - Feature: new link modes (no option) - Feature: JSON output for ring (-g) - Feature: netlink handler for RSS get (-x) - Fix: fix boolean value output in JSON output - Fix: fix build errors and warnings Remove upstreamed patches: - 100-uapi-Bring-in-if-h.patch - 101-netlink-Fix-maybe-uninitialized-meters-variable.patch - 102-raw-marvell-c-Fix-build-with-musl-libc.patch Signed-off-by: Nick Hainke <vincent@systemli.org>
This commit is contained in:
		 Nick Hainke
					Nick Hainke
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							530f5c2fda
						
					
				
				
					commit
					c98a202446
				
			| @@ -8,13 +8,13 @@ | |||||||
| include $(TOPDIR)/rules.mk | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
| PKG_NAME:=ethtool | PKG_NAME:=ethtool | ||||||
| PKG_VERSION:=6.1 | PKG_VERSION:=6.2 | ||||||
| PKG_RELEASE:=1 | PKG_RELEASE:=1 | ||||||
|  |  | ||||||
| PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> | PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> | ||||||
| PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz | ||||||
| PKG_SOURCE_URL:=@KERNEL/software/network/ethtool | PKG_SOURCE_URL:=@KERNEL/software/network/ethtool | ||||||
| PKG_HASH:=c41fc881ffa5a40432d2dd829eb44c64a49dee482e716baacf9262c64daa8f90 | PKG_HASH:=86df0114064d4d73f6bf72bf03e85c33964a519ee0c1d1ba65005ad2d0e570e1 | ||||||
|  |  | ||||||
| PKG_LICENSE:=GPL-2.0 | PKG_LICENSE:=GPL-2.0 | ||||||
| PKG_LICENSE_FILES:=COPYING | PKG_LICENSE_FILES:=COPYING | ||||||
|   | |||||||
| @@ -1,465 +0,0 @@ | |||||||
| From:   Florian Fainelli <f.fainelli@gmail.com> |  | ||||||
| To:     netdev@vger.kernel.org |  | ||||||
| Subject: [PATCH ethtool v2 1/3] uapi: Bring in if.h |  | ||||||
| Date:   Sat, 14 Jan 2023 08:34:09 -0800 |  | ||||||
|  |  | ||||||
| Bring in if.h from commit eec517cdb481 ("net: Add IF_OPER_TESTING") as |  | ||||||
| well as uapi/linux/hdlc/ioctl.h. Ensure that we define all of the |  | ||||||
| necessary guards to provide updated definitions of ifmap, ifreq and |  | ||||||
| IFNAMSIZ. This resolves build issues with kernel headers < 4.11 which |  | ||||||
| lacked 2618be7dccf8739b89e1906b64bd8d551af351e6 ("uapi: fix linux/if.h |  | ||||||
| userspace compilation errors"). |  | ||||||
|  |  | ||||||
| Fixes: 1fa60003a8b8 ("misc: header includes cleanup") |  | ||||||
| Reported-by: Markus Mayer <mmayer@broadcom.com> |  | ||||||
| Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> |  | ||||||
| --- |  | ||||||
|  Makefile.am             |   6 +- |  | ||||||
|  internal.h              |   7 +- |  | ||||||
|  uapi/linux/hdlc/ioctl.h |  94 +++++++++++++ |  | ||||||
|  uapi/linux/if.h         | 296 ++++++++++++++++++++++++++++++++++++++++ |  | ||||||
|  4 files changed, 397 insertions(+), 6 deletions(-) |  | ||||||
|  create mode 100644 uapi/linux/hdlc/ioctl.h |  | ||||||
|  create mode 100644 uapi/linux/if.h |  | ||||||
|  |  | ||||||
| --- a/Makefile.am |  | ||||||
| +++ b/Makefile.am |  | ||||||
| @@ -7,7 +7,8 @@ EXTRA_DIST = LICENSE ethtool.8 ethtool.s |  | ||||||
|   |  | ||||||
|  sbin_PROGRAMS = ethtool |  | ||||||
|  ethtool_SOURCES = ethtool.c uapi/linux/ethtool.h internal.h \ |  | ||||||
| -		  uapi/linux/net_tstamp.h rxclass.c common.c common.h \ |  | ||||||
| +		  uapi/linux/net_tstamp.h uapi/linux/if.h uapi/linux/hdlc/ioctl.h \ |  | ||||||
| +		  rxclass.c common.c common.h \ |  | ||||||
|  		  json_writer.c json_writer.h json_print.c json_print.h \ |  | ||||||
|  		  list.h |  | ||||||
|  if ETHTOOL_ENABLE_PRETTY_DUMP |  | ||||||
| @@ -43,7 +44,8 @@ ethtool_SOURCES += \ |  | ||||||
|  		  netlink/desc-rtnl.c netlink/cable_test.c netlink/tunnels.c \ |  | ||||||
|  		  uapi/linux/ethtool_netlink.h \ |  | ||||||
|  		  uapi/linux/netlink.h uapi/linux/genetlink.h \ |  | ||||||
| -		  uapi/linux/rtnetlink.h uapi/linux/if_link.h |  | ||||||
| +		  uapi/linux/rtnetlink.h uapi/linux/if_link.h \ |  | ||||||
| +		  uapi/linux/if.h uapi/linux/hdlc/ioctl.h |  | ||||||
|  AM_CPPFLAGS += @MNL_CFLAGS@ |  | ||||||
|  LDADD += @MNL_LIBS@ |  | ||||||
|  endif |  | ||||||
| --- a/internal.h |  | ||||||
| +++ b/internal.h |  | ||||||
| @@ -21,6 +21,9 @@ |  | ||||||
|  #include <unistd.h> |  | ||||||
|  #include <endian.h> |  | ||||||
|  #include <sys/ioctl.h> |  | ||||||
| +#define __UAPI_DEF_IF_IFNAMSIZ	1 |  | ||||||
| +#define __UAPI_DEF_IF_IFMAP	1 |  | ||||||
| +#define __UAPI_DEF_IF_IFREQ	1 |  | ||||||
|  #include <linux/if.h> |  | ||||||
|   |  | ||||||
|  #include "json_writer.h" |  | ||||||
| @@ -52,10 +55,6 @@ typedef int32_t s32; |  | ||||||
|  #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) |  | ||||||
|  #endif |  | ||||||
|   |  | ||||||
| -#ifndef ALTIFNAMSIZ |  | ||||||
| -#define ALTIFNAMSIZ 128 |  | ||||||
| -#endif |  | ||||||
| - |  | ||||||
|  #include <linux/ethtool.h> |  | ||||||
|  #include <linux/net_tstamp.h> |  | ||||||
|   |  | ||||||
| --- /dev/null |  | ||||||
| +++ b/uapi/linux/hdlc/ioctl.h |  | ||||||
| @@ -0,0 +1,94 @@ |  | ||||||
| +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |  | ||||||
| +#ifndef __HDLC_IOCTL_H__ |  | ||||||
| +#define __HDLC_IOCTL_H__ |  | ||||||
| + |  | ||||||
| + |  | ||||||
| +#define GENERIC_HDLC_VERSION 4	/* For synchronization with sethdlc utility */ |  | ||||||
| + |  | ||||||
| +#define CLOCK_DEFAULT   0	/* Default setting */ |  | ||||||
| +#define CLOCK_EXT	1	/* External TX and RX clock - DTE */ |  | ||||||
| +#define CLOCK_INT	2	/* Internal TX and RX clock - DCE */ |  | ||||||
| +#define CLOCK_TXINT	3	/* Internal TX and external RX clock */ |  | ||||||
| +#define CLOCK_TXFROMRX	4	/* TX clock derived from external RX clock */ |  | ||||||
| + |  | ||||||
| + |  | ||||||
| +#define ENCODING_DEFAULT	0 /* Default setting */ |  | ||||||
| +#define ENCODING_NRZ		1 |  | ||||||
| +#define ENCODING_NRZI		2 |  | ||||||
| +#define ENCODING_FM_MARK	3 |  | ||||||
| +#define ENCODING_FM_SPACE	4 |  | ||||||
| +#define ENCODING_MANCHESTER	5 |  | ||||||
| + |  | ||||||
| + |  | ||||||
| +#define PARITY_DEFAULT		0 /* Default setting */ |  | ||||||
| +#define PARITY_NONE		1 /* No parity */ |  | ||||||
| +#define PARITY_CRC16_PR0	2 /* CRC16, initial value 0x0000 */ |  | ||||||
| +#define PARITY_CRC16_PR1	3 /* CRC16, initial value 0xFFFF */ |  | ||||||
| +#define PARITY_CRC16_PR0_CCITT	4 /* CRC16, initial 0x0000, ITU-T version */ |  | ||||||
| +#define PARITY_CRC16_PR1_CCITT	5 /* CRC16, initial 0xFFFF, ITU-T version */ |  | ||||||
| +#define PARITY_CRC32_PR0_CCITT	6 /* CRC32, initial value 0x00000000 */ |  | ||||||
| +#define PARITY_CRC32_PR1_CCITT	7 /* CRC32, initial value 0xFFFFFFFF */ |  | ||||||
| + |  | ||||||
| +#define LMI_DEFAULT		0 /* Default setting */ |  | ||||||
| +#define LMI_NONE		1 /* No LMI, all PVCs are static */ |  | ||||||
| +#define LMI_ANSI		2 /* ANSI Annex D */ |  | ||||||
| +#define LMI_CCITT		3 /* ITU-T Annex A */ |  | ||||||
| +#define LMI_CISCO		4 /* The "original" LMI, aka Gang of Four */ |  | ||||||
| + |  | ||||||
| +#ifndef __ASSEMBLY__ |  | ||||||
| + |  | ||||||
| +typedef struct { |  | ||||||
| +	unsigned int clock_rate; /* bits per second */ |  | ||||||
| +	unsigned int clock_type; /* internal, external, TX-internal etc. */ |  | ||||||
| +	unsigned short loopback; |  | ||||||
| +} sync_serial_settings;          /* V.35, V.24, X.21 */ |  | ||||||
| + |  | ||||||
| +typedef struct { |  | ||||||
| +	unsigned int clock_rate; /* bits per second */ |  | ||||||
| +	unsigned int clock_type; /* internal, external, TX-internal etc. */ |  | ||||||
| +	unsigned short loopback; |  | ||||||
| +	unsigned int slot_map; |  | ||||||
| +} te1_settings;                  /* T1, E1 */ |  | ||||||
| + |  | ||||||
| +typedef struct { |  | ||||||
| +	unsigned short encoding; |  | ||||||
| +	unsigned short parity; |  | ||||||
| +} raw_hdlc_proto; |  | ||||||
| + |  | ||||||
| +typedef struct { |  | ||||||
| +	unsigned int t391; |  | ||||||
| +	unsigned int t392; |  | ||||||
| +	unsigned int n391; |  | ||||||
| +	unsigned int n392; |  | ||||||
| +	unsigned int n393; |  | ||||||
| +	unsigned short lmi; |  | ||||||
| +	unsigned short dce; /* 1 for DCE (network side) operation */ |  | ||||||
| +} fr_proto; |  | ||||||
| + |  | ||||||
| +typedef struct { |  | ||||||
| +	unsigned int dlci; |  | ||||||
| +} fr_proto_pvc;          /* for creating/deleting FR PVCs */ |  | ||||||
| + |  | ||||||
| +typedef struct { |  | ||||||
| +	unsigned int dlci; |  | ||||||
| +	char master[IFNAMSIZ];	/* Name of master FRAD device */ |  | ||||||
| +}fr_proto_pvc_info;		/* for returning PVC information only */ |  | ||||||
| + |  | ||||||
| +typedef struct { |  | ||||||
| +    unsigned int interval; |  | ||||||
| +    unsigned int timeout; |  | ||||||
| +} cisco_proto; |  | ||||||
| + |  | ||||||
| +typedef struct { |  | ||||||
| +	unsigned short dce; /* 1 for DCE (network side) operation */ |  | ||||||
| +	unsigned int modulo; /* modulo (8 = basic / 128 = extended) */ |  | ||||||
| +	unsigned int window; /* frame window size */ |  | ||||||
| +	unsigned int t1; /* timeout t1 */ |  | ||||||
| +	unsigned int t2; /* timeout t2 */ |  | ||||||
| +	unsigned int n2; /* frame retry counter */ |  | ||||||
| +} x25_hdlc_proto; |  | ||||||
| + |  | ||||||
| +/* PPP doesn't need any info now - supply length = 0 to ioctl */ |  | ||||||
| + |  | ||||||
| +#endif /* __ASSEMBLY__ */ |  | ||||||
| +#endif /* __HDLC_IOCTL_H__ */ |  | ||||||
| --- /dev/null |  | ||||||
| +++ b/uapi/linux/if.h |  | ||||||
| @@ -0,0 +1,296 @@ |  | ||||||
| +/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |  | ||||||
| +/* |  | ||||||
| + * INET		An implementation of the TCP/IP protocol suite for the LINUX |  | ||||||
| + *		operating system.  INET is implemented using the  BSD Socket |  | ||||||
| + *		interface as the means of communication with the user level. |  | ||||||
| + * |  | ||||||
| + *		Global definitions for the INET interface module. |  | ||||||
| + * |  | ||||||
| + * Version:	@(#)if.h	1.0.2	04/18/93 |  | ||||||
| + * |  | ||||||
| + * Authors:	Original taken from Berkeley UNIX 4.3, (c) UCB 1982-1988 |  | ||||||
| + *		Ross Biro |  | ||||||
| + *		Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> |  | ||||||
| + * |  | ||||||
| + *		This program is free software; you can redistribute it and/or |  | ||||||
| + *		modify it under the terms of the GNU General Public License |  | ||||||
| + *		as published by the Free Software Foundation; either version |  | ||||||
| + *		2 of the License, or (at your option) any later version. |  | ||||||
| + */ |  | ||||||
| +#ifndef _LINUX_IF_H |  | ||||||
| +#define _LINUX_IF_H |  | ||||||
| + |  | ||||||
| +#include <linux/libc-compat.h>          /* for compatibility with glibc */ |  | ||||||
| +#include <linux/types.h>		/* for "__kernel_caddr_t" et al	*/ |  | ||||||
| +#include <linux/socket.h>		/* for "struct sockaddr" et al	*/ |  | ||||||
| +		/* for "__user" et al           */ |  | ||||||
| + |  | ||||||
| +#include <sys/socket.h>			/* for struct sockaddr.		*/ |  | ||||||
| + |  | ||||||
| +#if __UAPI_DEF_IF_IFNAMSIZ |  | ||||||
| +#define	IFNAMSIZ	16 |  | ||||||
| +#endif /* __UAPI_DEF_IF_IFNAMSIZ */ |  | ||||||
| +#define	IFALIASZ	256 |  | ||||||
| +#define	ALTIFNAMSIZ	128 |  | ||||||
| +#include <linux/hdlc/ioctl.h> |  | ||||||
| + |  | ||||||
| +/* For glibc compatibility. An empty enum does not compile. */ |  | ||||||
| +#if __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO != 0 || \ |  | ||||||
| +    __UAPI_DEF_IF_NET_DEVICE_FLAGS != 0 |  | ||||||
| +/** |  | ||||||
| + * enum net_device_flags - &struct net_device flags |  | ||||||
| + * |  | ||||||
| + * These are the &struct net_device flags, they can be set by drivers, the |  | ||||||
| + * kernel and some can be triggered by userspace. Userspace can query and |  | ||||||
| + * set these flags using userspace utilities but there is also a sysfs |  | ||||||
| + * entry available for all dev flags which can be queried and set. These flags |  | ||||||
| + * are shared for all types of net_devices. The sysfs entries are available |  | ||||||
| + * via /sys/class/net/<dev>/flags. Flags which can be toggled through sysfs |  | ||||||
| + * are annotated below, note that only a few flags can be toggled and some |  | ||||||
| + * other flags are always preserved from the original net_device flags |  | ||||||
| + * even if you try to set them via sysfs. Flags which are always preserved |  | ||||||
| + * are kept under the flag grouping @IFF_VOLATILE. Flags which are __volatile__ |  | ||||||
| + * are annotated below as such. |  | ||||||
| + * |  | ||||||
| + * You should have a pretty good reason to be extending these flags. |  | ||||||
| + * |  | ||||||
| + * @IFF_UP: interface is up. Can be toggled through sysfs. |  | ||||||
| + * @IFF_BROADCAST: broadcast address valid. Volatile. |  | ||||||
| + * @IFF_DEBUG: turn on debugging. Can be toggled through sysfs. |  | ||||||
| + * @IFF_LOOPBACK: is a loopback net. Volatile. |  | ||||||
| + * @IFF_POINTOPOINT: interface is has p-p link. Volatile. |  | ||||||
| + * @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs. |  | ||||||
| + *	Volatile. |  | ||||||
| + * @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile. |  | ||||||
| + * @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile. |  | ||||||
| + * @IFF_PROMISC: receive all packets. Can be toggled through sysfs. |  | ||||||
| + * @IFF_ALLMULTI: receive all multicast packets. Can be toggled through |  | ||||||
| + *	sysfs. |  | ||||||
| + * @IFF_MASTER: master of a load balancer. Volatile. |  | ||||||
| + * @IFF_SLAVE: slave of a load balancer. Volatile. |  | ||||||
| + * @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs. |  | ||||||
| + * @IFF_PORTSEL: can set media type. Can be toggled through sysfs. |  | ||||||
| + * @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs. |  | ||||||
| + * @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled |  | ||||||
| + *	through sysfs. |  | ||||||
| + * @IFF_LOWER_UP: driver signals L1 up. Volatile. |  | ||||||
| + * @IFF_DORMANT: driver signals dormant. Volatile. |  | ||||||
| + * @IFF_ECHO: echo sent packets. Volatile. |  | ||||||
| + */ |  | ||||||
| +enum net_device_flags { |  | ||||||
| +/* for compatibility with glibc net/if.h */ |  | ||||||
| +#if __UAPI_DEF_IF_NET_DEVICE_FLAGS |  | ||||||
| +	IFF_UP				= 1<<0,  /* sysfs */ |  | ||||||
| +	IFF_BROADCAST			= 1<<1,  /* __volatile__ */ |  | ||||||
| +	IFF_DEBUG			= 1<<2,  /* sysfs */ |  | ||||||
| +	IFF_LOOPBACK			= 1<<3,  /* __volatile__ */ |  | ||||||
| +	IFF_POINTOPOINT			= 1<<4,  /* __volatile__ */ |  | ||||||
| +	IFF_NOTRAILERS			= 1<<5,  /* sysfs */ |  | ||||||
| +	IFF_RUNNING			= 1<<6,  /* __volatile__ */ |  | ||||||
| +	IFF_NOARP			= 1<<7,  /* sysfs */ |  | ||||||
| +	IFF_PROMISC			= 1<<8,  /* sysfs */ |  | ||||||
| +	IFF_ALLMULTI			= 1<<9,  /* sysfs */ |  | ||||||
| +	IFF_MASTER			= 1<<10, /* __volatile__ */ |  | ||||||
| +	IFF_SLAVE			= 1<<11, /* __volatile__ */ |  | ||||||
| +	IFF_MULTICAST			= 1<<12, /* sysfs */ |  | ||||||
| +	IFF_PORTSEL			= 1<<13, /* sysfs */ |  | ||||||
| +	IFF_AUTOMEDIA			= 1<<14, /* sysfs */ |  | ||||||
| +	IFF_DYNAMIC			= 1<<15, /* sysfs */ |  | ||||||
| +#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS */ |  | ||||||
| +#if __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO |  | ||||||
| +	IFF_LOWER_UP			= 1<<16, /* __volatile__ */ |  | ||||||
| +	IFF_DORMANT			= 1<<17, /* __volatile__ */ |  | ||||||
| +	IFF_ECHO			= 1<<18, /* __volatile__ */ |  | ||||||
| +#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */ |  | ||||||
| +}; |  | ||||||
| +#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO != 0 || __UAPI_DEF_IF_NET_DEVICE_FLAGS != 0 */ |  | ||||||
| + |  | ||||||
| +/* for compatibility with glibc net/if.h */ |  | ||||||
| +#if __UAPI_DEF_IF_NET_DEVICE_FLAGS |  | ||||||
| +#define IFF_UP				IFF_UP |  | ||||||
| +#define IFF_BROADCAST			IFF_BROADCAST |  | ||||||
| +#define IFF_DEBUG			IFF_DEBUG |  | ||||||
| +#define IFF_LOOPBACK			IFF_LOOPBACK |  | ||||||
| +#define IFF_POINTOPOINT			IFF_POINTOPOINT |  | ||||||
| +#define IFF_NOTRAILERS			IFF_NOTRAILERS |  | ||||||
| +#define IFF_RUNNING			IFF_RUNNING |  | ||||||
| +#define IFF_NOARP			IFF_NOARP |  | ||||||
| +#define IFF_PROMISC			IFF_PROMISC |  | ||||||
| +#define IFF_ALLMULTI			IFF_ALLMULTI |  | ||||||
| +#define IFF_MASTER			IFF_MASTER |  | ||||||
| +#define IFF_SLAVE			IFF_SLAVE |  | ||||||
| +#define IFF_MULTICAST			IFF_MULTICAST |  | ||||||
| +#define IFF_PORTSEL			IFF_PORTSEL |  | ||||||
| +#define IFF_AUTOMEDIA			IFF_AUTOMEDIA |  | ||||||
| +#define IFF_DYNAMIC			IFF_DYNAMIC |  | ||||||
| +#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS */ |  | ||||||
| + |  | ||||||
| +#if __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO |  | ||||||
| +#define IFF_LOWER_UP			IFF_LOWER_UP |  | ||||||
| +#define IFF_DORMANT			IFF_DORMANT |  | ||||||
| +#define IFF_ECHO			IFF_ECHO |  | ||||||
| +#endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */ |  | ||||||
| + |  | ||||||
| +#define IFF_VOLATILE	(IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\ |  | ||||||
| +		IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT) |  | ||||||
| + |  | ||||||
| +#define IF_GET_IFACE	0x0001		/* for querying only */ |  | ||||||
| +#define IF_GET_PROTO	0x0002 |  | ||||||
| + |  | ||||||
| +/* For definitions see hdlc.h */ |  | ||||||
| +#define IF_IFACE_V35	0x1000		/* V.35 serial interface	*/ |  | ||||||
| +#define IF_IFACE_V24	0x1001		/* V.24 serial interface	*/ |  | ||||||
| +#define IF_IFACE_X21	0x1002		/* X.21 serial interface	*/ |  | ||||||
| +#define IF_IFACE_T1	0x1003		/* T1 telco serial interface	*/ |  | ||||||
| +#define IF_IFACE_E1	0x1004		/* E1 telco serial interface	*/ |  | ||||||
| +#define IF_IFACE_SYNC_SERIAL 0x1005	/* can't be set by software	*/ |  | ||||||
| +#define IF_IFACE_X21D   0x1006          /* X.21 Dual Clocking (FarSite) */ |  | ||||||
| + |  | ||||||
| +/* For definitions see hdlc.h */ |  | ||||||
| +#define IF_PROTO_HDLC	0x2000		/* raw HDLC protocol		*/ |  | ||||||
| +#define IF_PROTO_PPP	0x2001		/* PPP protocol			*/ |  | ||||||
| +#define IF_PROTO_CISCO	0x2002		/* Cisco HDLC protocol		*/ |  | ||||||
| +#define IF_PROTO_FR	0x2003		/* Frame Relay protocol		*/ |  | ||||||
| +#define IF_PROTO_FR_ADD_PVC 0x2004	/*    Create FR PVC		*/ |  | ||||||
| +#define IF_PROTO_FR_DEL_PVC 0x2005	/*    Delete FR PVC		*/ |  | ||||||
| +#define IF_PROTO_X25	0x2006		/* X.25				*/ |  | ||||||
| +#define IF_PROTO_HDLC_ETH 0x2007	/* raw HDLC, Ethernet emulation	*/ |  | ||||||
| +#define IF_PROTO_FR_ADD_ETH_PVC 0x2008	/*  Create FR Ethernet-bridged PVC */ |  | ||||||
| +#define IF_PROTO_FR_DEL_ETH_PVC 0x2009	/*  Delete FR Ethernet-bridged PVC */ |  | ||||||
| +#define IF_PROTO_FR_PVC	0x200A		/* for reading PVC status	*/ |  | ||||||
| +#define IF_PROTO_FR_ETH_PVC 0x200B |  | ||||||
| +#define IF_PROTO_RAW    0x200C          /* RAW Socket                   */ |  | ||||||
| + |  | ||||||
| +/* RFC 2863 operational status */ |  | ||||||
| +enum { |  | ||||||
| +	IF_OPER_UNKNOWN, |  | ||||||
| +	IF_OPER_NOTPRESENT, |  | ||||||
| +	IF_OPER_DOWN, |  | ||||||
| +	IF_OPER_LOWERLAYERDOWN, |  | ||||||
| +	IF_OPER_TESTING, |  | ||||||
| +	IF_OPER_DORMANT, |  | ||||||
| +	IF_OPER_UP, |  | ||||||
| +}; |  | ||||||
| + |  | ||||||
| +/* link modes */ |  | ||||||
| +enum { |  | ||||||
| +	IF_LINK_MODE_DEFAULT, |  | ||||||
| +	IF_LINK_MODE_DORMANT,	/* limit upward transition to dormant */ |  | ||||||
| +	IF_LINK_MODE_TESTING,	/* limit upward transition to testing */ |  | ||||||
| +}; |  | ||||||
| + |  | ||||||
| +/* |  | ||||||
| + *	Device mapping structure. I'd just gone off and designed a  |  | ||||||
| + *	beautiful scheme using only loadable modules with arguments |  | ||||||
| + *	for driver options and along come the PCMCIA people 8) |  | ||||||
| + * |  | ||||||
| + *	Ah well. The get() side of this is good for WDSETUP, and it'll |  | ||||||
| + *	be handy for debugging things. The set side is fine for now and |  | ||||||
| + *	being very small might be worth keeping for clean configuration. |  | ||||||
| + */ |  | ||||||
| + |  | ||||||
| +/* for compatibility with glibc net/if.h */ |  | ||||||
| +#if __UAPI_DEF_IF_IFMAP |  | ||||||
| +struct ifmap { |  | ||||||
| +	unsigned long mem_start; |  | ||||||
| +	unsigned long mem_end; |  | ||||||
| +	unsigned short base_addr;  |  | ||||||
| +	unsigned char irq; |  | ||||||
| +	unsigned char dma; |  | ||||||
| +	unsigned char port; |  | ||||||
| +	/* 3 bytes spare */ |  | ||||||
| +}; |  | ||||||
| +#endif /* __UAPI_DEF_IF_IFMAP */ |  | ||||||
| + |  | ||||||
| +struct if_settings { |  | ||||||
| +	unsigned int type;	/* Type of physical device or protocol */ |  | ||||||
| +	unsigned int size;	/* Size of the data allocated by the caller */ |  | ||||||
| +	union { |  | ||||||
| +		/* {atm/eth/dsl}_settings anyone ? */ |  | ||||||
| +		raw_hdlc_proto		*raw_hdlc; |  | ||||||
| +		cisco_proto		*cisco; |  | ||||||
| +		fr_proto		*fr; |  | ||||||
| +		fr_proto_pvc		*fr_pvc; |  | ||||||
| +		fr_proto_pvc_info	*fr_pvc_info; |  | ||||||
| +		x25_hdlc_proto		*x25; |  | ||||||
| + |  | ||||||
| +		/* interface settings */ |  | ||||||
| +		sync_serial_settings	*sync; |  | ||||||
| +		te1_settings		*te1; |  | ||||||
| +	} ifs_ifsu; |  | ||||||
| +}; |  | ||||||
| + |  | ||||||
| +/* |  | ||||||
| + * Interface request structure used for socket |  | ||||||
| + * ioctl's.  All interface ioctl's must have parameter |  | ||||||
| + * definitions which begin with ifr_name.  The |  | ||||||
| + * remainder may be interface specific. |  | ||||||
| + */ |  | ||||||
| + |  | ||||||
| +/* for compatibility with glibc net/if.h */ |  | ||||||
| +#if __UAPI_DEF_IF_IFREQ |  | ||||||
| +struct ifreq { |  | ||||||
| +#define IFHWADDRLEN	6 |  | ||||||
| +	union |  | ||||||
| +	{ |  | ||||||
| +		char	ifrn_name[IFNAMSIZ];		/* if name, e.g. "en0" */ |  | ||||||
| +	} ifr_ifrn; |  | ||||||
| +	 |  | ||||||
| +	union { |  | ||||||
| +		struct	sockaddr ifru_addr; |  | ||||||
| +		struct	sockaddr ifru_dstaddr; |  | ||||||
| +		struct	sockaddr ifru_broadaddr; |  | ||||||
| +		struct	sockaddr ifru_netmask; |  | ||||||
| +		struct  sockaddr ifru_hwaddr; |  | ||||||
| +		short	ifru_flags; |  | ||||||
| +		int	ifru_ivalue; |  | ||||||
| +		int	ifru_mtu; |  | ||||||
| +		struct  ifmap ifru_map; |  | ||||||
| +		char	ifru_slave[IFNAMSIZ];	/* Just fits the size */ |  | ||||||
| +		char	ifru_newname[IFNAMSIZ]; |  | ||||||
| +		void *	ifru_data; |  | ||||||
| +		struct	if_settings ifru_settings; |  | ||||||
| +	} ifr_ifru; |  | ||||||
| +}; |  | ||||||
| +#endif /* __UAPI_DEF_IF_IFREQ */ |  | ||||||
| + |  | ||||||
| +#define ifr_name	ifr_ifrn.ifrn_name	/* interface name 	*/ |  | ||||||
| +#define ifr_hwaddr	ifr_ifru.ifru_hwaddr	/* MAC address 		*/ |  | ||||||
| +#define	ifr_addr	ifr_ifru.ifru_addr	/* address		*/ |  | ||||||
| +#define	ifr_dstaddr	ifr_ifru.ifru_dstaddr	/* other end of p-p lnk	*/ |  | ||||||
| +#define	ifr_broadaddr	ifr_ifru.ifru_broadaddr	/* broadcast address	*/ |  | ||||||
| +#define	ifr_netmask	ifr_ifru.ifru_netmask	/* interface net mask	*/ |  | ||||||
| +#define	ifr_flags	ifr_ifru.ifru_flags	/* flags		*/ |  | ||||||
| +#define	ifr_metric	ifr_ifru.ifru_ivalue	/* metric		*/ |  | ||||||
| +#define	ifr_mtu		ifr_ifru.ifru_mtu	/* mtu			*/ |  | ||||||
| +#define ifr_map		ifr_ifru.ifru_map	/* device map		*/ |  | ||||||
| +#define ifr_slave	ifr_ifru.ifru_slave	/* slave device		*/ |  | ||||||
| +#define	ifr_data	ifr_ifru.ifru_data	/* for use by interface	*/ |  | ||||||
| +#define ifr_ifindex	ifr_ifru.ifru_ivalue	/* interface index	*/ |  | ||||||
| +#define ifr_bandwidth	ifr_ifru.ifru_ivalue    /* link bandwidth	*/ |  | ||||||
| +#define ifr_qlen	ifr_ifru.ifru_ivalue	/* Queue length 	*/ |  | ||||||
| +#define ifr_newname	ifr_ifru.ifru_newname	/* New name		*/ |  | ||||||
| +#define ifr_settings	ifr_ifru.ifru_settings	/* Device/proto settings*/ |  | ||||||
| + |  | ||||||
| +/* |  | ||||||
| + * Structure used in SIOCGIFCONF request. |  | ||||||
| + * Used to retrieve interface configuration |  | ||||||
| + * for machine (useful for programs which |  | ||||||
| + * must know all networks accessible). |  | ||||||
| + */ |  | ||||||
| + |  | ||||||
| +/* for compatibility with glibc net/if.h */ |  | ||||||
| +#if __UAPI_DEF_IF_IFCONF |  | ||||||
| +struct ifconf  { |  | ||||||
| +	int	ifc_len;			/* size of buffer	*/ |  | ||||||
| +	union { |  | ||||||
| +		char *ifcu_buf; |  | ||||||
| +		struct ifreq *ifcu_req; |  | ||||||
| +	} ifc_ifcu; |  | ||||||
| +}; |  | ||||||
| +#endif /* __UAPI_DEF_IF_IFCONF */ |  | ||||||
| + |  | ||||||
| +#define	ifc_buf	ifc_ifcu.ifcu_buf		/* buffer address	*/ |  | ||||||
| +#define	ifc_req	ifc_ifcu.ifcu_req		/* array of structures	*/ |  | ||||||
| + |  | ||||||
| +#endif /* _LINUX_IF_H */ |  | ||||||
| @@ -1,25 +0,0 @@ | |||||||
| From:   Florian Fainelli <f.fainelli@gmail.com> |  | ||||||
| To:     netdev@vger.kernel.org |  | ||||||
| Subject: [PATCH ethtool v2 2/3] netlink: Fix maybe uninitialized 'meters' variable |  | ||||||
| Date:   Sat, 14 Jan 2023 08:34:10 -0800 |  | ||||||
|  |  | ||||||
| GCC12 warns that 'meters' may be uninitialized, initialize it |  | ||||||
| accordingly. |  | ||||||
|  |  | ||||||
| Fixes: 9561db9b76f4 ("Add cable test TDR support") |  | ||||||
| Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> |  | ||||||
| --- |  | ||||||
|  netlink/parser.c | 2 +- |  | ||||||
|  1 file changed, 1 insertion(+), 1 deletion(-) |  | ||||||
|  |  | ||||||
| --- a/netlink/parser.c |  | ||||||
| +++ b/netlink/parser.c |  | ||||||
| @@ -237,7 +237,7 @@ int nl_parse_direct_m2cm(struct nl_conte |  | ||||||
|  			 struct nl_msg_buff *msgbuff, void *dest) |  | ||||||
|  { |  | ||||||
|  	const char *arg = *nlctx->argp; |  | ||||||
| -	float meters; |  | ||||||
| +	float meters = 0.0; |  | ||||||
|  	uint32_t cm; |  | ||||||
|  	int ret; |  | ||||||
|   |  | ||||||
| @@ -1,63 +0,0 @@ | |||||||
| From:   Florian Fainelli <f.fainelli@gmail.com> |  | ||||||
| To:     netdev@vger.kernel.org |  | ||||||
| Subject: [PATCH ethtool v2 3/3] marvell.c: Fix build with musl-libc |  | ||||||
| Date:   Sat, 14 Jan 2023 08:34:11 -0800 |  | ||||||
|  |  | ||||||
| After commit 1fa60003a8b8 ("misc: header includes cleanup") we stopped |  | ||||||
| including net/if.h which resolved the proper defines to pull in |  | ||||||
| sys/types.h and provide a definition for u_int32_t. With musl-libc we |  | ||||||
| would need to define _GNU_SOURCE to ensure that sys/types.h does provide a |  | ||||||
| definition for u_int32_t. |  | ||||||
|  |  | ||||||
| Rather, just replace u_uint{16,32}_t with the more standard |  | ||||||
| uint{16,32}_t types from stdint.h |  | ||||||
|  |  | ||||||
| Fixes: 1fa60003a8b8 ("misc: header includes cleanup") |  | ||||||
| Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> |  | ||||||
| --- |  | ||||||
|  marvell.c | 34 +++++++++++++++++----------------- |  | ||||||
|  1 file changed, 17 insertions(+), 17 deletions(-) |  | ||||||
|  |  | ||||||
| --- a/marvell.c |  | ||||||
| +++ b/marvell.c |  | ||||||
| @@ -31,23 +31,23 @@ static void dump_timer(const char *name, |  | ||||||
|  static void dump_queue(const char *name, const void *a, int rx) |  | ||||||
|  { |  | ||||||
|  	struct desc { |  | ||||||
| -		u_int32_t		ctl; |  | ||||||
| -		u_int32_t		next; |  | ||||||
| -		u_int32_t		data_lo; |  | ||||||
| -		u_int32_t		data_hi; |  | ||||||
| -		u_int32_t		status; |  | ||||||
| -		u_int32_t		timestamp; |  | ||||||
| -		u_int16_t		csum2; |  | ||||||
| -		u_int16_t		csum1; |  | ||||||
| -		u_int16_t		csum2_start; |  | ||||||
| -		u_int16_t		csum1_start; |  | ||||||
| -		u_int32_t		addr_lo; |  | ||||||
| -		u_int32_t		addr_hi; |  | ||||||
| -		u_int32_t		count_lo; |  | ||||||
| -		u_int32_t		count_hi; |  | ||||||
| -		u_int32_t               byte_count; |  | ||||||
| -		u_int32_t               csr; |  | ||||||
| -		u_int32_t               flag; |  | ||||||
| +		uint32_t		ctl; |  | ||||||
| +		uint32_t		next; |  | ||||||
| +		uint32_t		data_lo; |  | ||||||
| +		uint32_t		data_hi; |  | ||||||
| +		uint32_t		status; |  | ||||||
| +		uint32_t		timestamp; |  | ||||||
| +		uint16_t		csum2; |  | ||||||
| +		uint16_t		csum1; |  | ||||||
| +		uint16_t		csum2_start; |  | ||||||
| +		uint16_t		csum1_start; |  | ||||||
| +		uint32_t		addr_lo; |  | ||||||
| +		uint32_t		addr_hi; |  | ||||||
| +		uint32_t		count_lo; |  | ||||||
| +		uint32_t		count_hi; |  | ||||||
| +		uint32_t		byte_count; |  | ||||||
| +		uint32_t		csr; |  | ||||||
| +		uint32_t		flag; |  | ||||||
|  	}; |  | ||||||
|  	const struct desc *d = a; |  | ||||||
|   |  | ||||||
		Reference in New Issue
	
	Block a user