aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/netdevice.h
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2018-04-27 13:11:14 -0700
committerDavid S. Miller <davem@davemloft.net>2018-04-29 22:50:36 -0400
commit3ac305c386f698abccd0523c64a8aef248c89bc6 (patch)
tree560ca8bcc6bae44af98c94846a52962094bca987 /include/linux/netdevice.h
parentMerge branch 'net-cleanup-skb_tx_hash' (diff)
downloadlinux-dev-3ac305c386f698abccd0523c64a8aef248c89bc6.tar.xz
linux-dev-3ac305c386f698abccd0523c64a8aef248c89bc6.zip
net: core: Assert the size of netdev_featres_t
We have about 53 netdev_features_t bits defined and counting, add a build time check to catch when an u64 type will not be enough and we will have to convert that to a bitmap. This is done in register_netdevice() for convenience. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r--include/linux/netdevice.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 82f5a9aba578..9e09dd897b74 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -4108,6 +4108,12 @@ const char *netdev_drivername(const struct net_device *dev);
void linkwatch_run_queue(void);
+static inline void netdev_features_size_check(void)
+{
+ BUILD_BUG_ON(sizeof(netdev_features_t) * BITS_PER_BYTE <
+ NETDEV_FEATURE_COUNT);
+}
+
static inline netdev_features_t netdev_intersect_features(netdev_features_t f1,
netdev_features_t f2)
{