lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 11 Apr 2007 17:56:02 +1000
From:	Herbert Xu <>
To:	"David S. Miller" <>
Cc:, Rusty Russell <>,
	Jeff Garzik <>
Subject: [NET]: Get rid of NETIF_F_INTERNAL_STATS



The recently added NETIF_F_INTERNAL_STATS isn't very useful.  If the
device driver needs to set it then it can always override get_stats
instead.  All existing drivers that have stats (which should be every
one) will override get_stats anyway.  Those that don't have stats
(if there are any) wouldn't hurt from having a get_stats that just
returns zeros everywhere.

So we can simply get rid of this flag.

This also fixes a potential crash in those get_stats callers that
don't check for a NULL return value (e.g., /proc/net/dev).

Signed-off-by: Herbert Xu <>

Visit Openswan at
Email: Herbert Xu ~{PmV>HI~} <>
Home Page:
PGP Key:
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 71fc8ff..9c52652 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -323,7 +323,6 @@ struct net_device
 #define NETIF_F_VLAN_CHALLENGED	1024	/* Device cannot handle VLAN packets */
 #define NETIF_F_GSO		2048	/* Enable software GSO. */
 #define NETIF_F_LLTX		4096	/* LockLess TX */
-#define NETIF_F_INTERNAL_STATS	8192	/* Use stats structure in net_device */
 	/* Segmentation offload features */
 #define NETIF_F_GSO_SHIFT	16
diff --git a/net/core/dev.c b/net/core/dev.c
index c484fcf..5791021 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -3289,11 +3289,9 @@ out:
-static struct net_device_stats *maybe_internal_stats(struct net_device *dev)
+static struct net_device_stats *get_internal_stats(struct net_device *dev)
-	if (dev->features & NETIF_F_INTERNAL_STATS)
-		return &dev->stats;
-	return NULL;
+	return &dev->stats;
@@ -3331,7 +3329,7 @@ struct net_device *alloc_netdev(int sizeof_priv, const char *name,
 	if (sizeof_priv)
 		dev->priv = netdev_priv(dev);
-	dev->get_stats = maybe_internal_stats;
+	dev->get_stats = get_internal_stats;
 	strcpy(dev->name, name);
 	return dev;
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to
More majordomo info at

Powered by blists - more mailing lists