net: add busy_poll device feature
Currently there is no way how to find out if a device supports busy polling. So add a feature and make it dependent on ndo_busy_poll existence. Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8e2f1a63f2
commit
d0290214de
3 changed files with 10 additions and 0 deletions
|
@ -63,6 +63,7 @@ enum {
|
||||||
NETIF_F_HW_VLAN_STAG_RX_BIT, /* Receive VLAN STAG HW acceleration */
|
NETIF_F_HW_VLAN_STAG_RX_BIT, /* Receive VLAN STAG HW acceleration */
|
||||||
NETIF_F_HW_VLAN_STAG_FILTER_BIT,/* Receive filtering on VLAN STAGs */
|
NETIF_F_HW_VLAN_STAG_FILTER_BIT,/* Receive filtering on VLAN STAGs */
|
||||||
NETIF_F_HW_L2FW_DOFFLOAD_BIT, /* Allow L2 Forwarding in Hardware */
|
NETIF_F_HW_L2FW_DOFFLOAD_BIT, /* Allow L2 Forwarding in Hardware */
|
||||||
|
NETIF_F_BUSY_POLL_BIT, /* Busy poll */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add your fresh new feature above and remember to update
|
* Add your fresh new feature above and remember to update
|
||||||
|
@ -118,6 +119,7 @@ enum {
|
||||||
#define NETIF_F_HW_VLAN_STAG_RX __NETIF_F(HW_VLAN_STAG_RX)
|
#define NETIF_F_HW_VLAN_STAG_RX __NETIF_F(HW_VLAN_STAG_RX)
|
||||||
#define NETIF_F_HW_VLAN_STAG_TX __NETIF_F(HW_VLAN_STAG_TX)
|
#define NETIF_F_HW_VLAN_STAG_TX __NETIF_F(HW_VLAN_STAG_TX)
|
||||||
#define NETIF_F_HW_L2FW_DOFFLOAD __NETIF_F(HW_L2FW_DOFFLOAD)
|
#define NETIF_F_HW_L2FW_DOFFLOAD __NETIF_F(HW_L2FW_DOFFLOAD)
|
||||||
|
#define NETIF_F_BUSY_POLL __NETIF_F(BUSY_POLL)
|
||||||
|
|
||||||
/* Features valid for ethtool to change */
|
/* Features valid for ethtool to change */
|
||||||
/* = all defined minus driver/device-class-related */
|
/* = all defined minus driver/device-class-related */
|
||||||
|
|
|
@ -5696,6 +5696,13 @@ static netdev_features_t netdev_fix_features(struct net_device *dev,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_NET_RX_BUSY_POLL
|
||||||
|
if (dev->netdev_ops->ndo_busy_poll)
|
||||||
|
features |= NETIF_F_BUSY_POLL;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
features &= ~NETIF_F_BUSY_POLL;
|
||||||
|
|
||||||
return features;
|
return features;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -97,6 +97,7 @@ static const char netdev_features_strings[NETDEV_FEATURE_COUNT][ETH_GSTRING_LEN]
|
||||||
[NETIF_F_RXFCS_BIT] = "rx-fcs",
|
[NETIF_F_RXFCS_BIT] = "rx-fcs",
|
||||||
[NETIF_F_RXALL_BIT] = "rx-all",
|
[NETIF_F_RXALL_BIT] = "rx-all",
|
||||||
[NETIF_F_HW_L2FW_DOFFLOAD_BIT] = "l2-fwd-offload",
|
[NETIF_F_HW_L2FW_DOFFLOAD_BIT] = "l2-fwd-offload",
|
||||||
|
[NETIF_F_BUSY_POLL_BIT] = "busy-poll",
|
||||||
};
|
};
|
||||||
|
|
||||||
static int ethtool_get_features(struct net_device *dev, void __user *useraddr)
|
static int ethtool_get_features(struct net_device *dev, void __user *useraddr)
|
||||||
|
|
Loading…
Add table
Reference in a new issue