diff options
author | Eric Dumazet <edumazet@google.com> | 2017-02-02 21:43:28 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-02-03 17:28:29 -0500 |
commit | 79e7fff47b7bb4124ef970a13eac4fdeddd1fc25 (patch) | |
tree | 484a1b06f220a2e6566ddbaba553eaa831eca1ba | |
parent | 7a655c6324a8968ea2f027bf3660c87c42ac3de4 (diff) |
net: remove support for per driver ndo_busy_poll()
We added generic support for busy polling in NAPI layer in linux-4.5
No network driver uses ndo_busy_poll() anymore, we can get rid
of the pointer in struct net_device_ops, and its use in sk_busy_loop()
Saves NETIF_F_BUSY_POLL features bit.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/linux/netdev_features.h | 2 | ||||
-rw-r--r-- | include/linux/netdevice.h | 3 | ||||
-rw-r--r-- | net/core/dev.c | 15 | ||||
-rw-r--r-- | net/core/ethtool.c | 1 |
4 files changed, 0 insertions, 21 deletions
diff --git a/include/linux/netdev_features.h b/include/linux/netdev_features.h index 9c6c8ef2e9e7..9a0419594e84 100644 --- a/include/linux/netdev_features.h +++ b/include/linux/netdev_features.h | |||
@@ -71,7 +71,6 @@ enum { | |||
71 | NETIF_F_HW_VLAN_STAG_RX_BIT, /* Receive VLAN STAG HW acceleration */ | 71 | NETIF_F_HW_VLAN_STAG_RX_BIT, /* Receive VLAN STAG HW acceleration */ |
72 | NETIF_F_HW_VLAN_STAG_FILTER_BIT,/* Receive filtering on VLAN STAGs */ | 72 | NETIF_F_HW_VLAN_STAG_FILTER_BIT,/* Receive filtering on VLAN STAGs */ |
73 | NETIF_F_HW_L2FW_DOFFLOAD_BIT, /* Allow L2 Forwarding in Hardware */ | 73 | NETIF_F_HW_L2FW_DOFFLOAD_BIT, /* Allow L2 Forwarding in Hardware */ |
74 | NETIF_F_BUSY_POLL_BIT, /* Busy poll */ | ||
75 | 74 | ||
76 | NETIF_F_HW_TC_BIT, /* Offload TC infrastructure */ | 75 | NETIF_F_HW_TC_BIT, /* Offload TC infrastructure */ |
77 | 76 | ||
@@ -134,7 +133,6 @@ enum { | |||
134 | #define NETIF_F_HW_VLAN_STAG_RX __NETIF_F(HW_VLAN_STAG_RX) | 133 | #define NETIF_F_HW_VLAN_STAG_RX __NETIF_F(HW_VLAN_STAG_RX) |
135 | #define NETIF_F_HW_VLAN_STAG_TX __NETIF_F(HW_VLAN_STAG_TX) | 134 | #define NETIF_F_HW_VLAN_STAG_TX __NETIF_F(HW_VLAN_STAG_TX) |
136 | #define NETIF_F_HW_L2FW_DOFFLOAD __NETIF_F(HW_L2FW_DOFFLOAD) | 135 | #define NETIF_F_HW_L2FW_DOFFLOAD __NETIF_F(HW_L2FW_DOFFLOAD) |
137 | #define NETIF_F_BUSY_POLL __NETIF_F(BUSY_POLL) | ||
138 | #define NETIF_F_HW_TC __NETIF_F(HW_TC) | 136 | #define NETIF_F_HW_TC __NETIF_F(HW_TC) |
139 | 137 | ||
140 | #define for_each_netdev_feature(mask_addr, bit) \ | 138 | #define for_each_netdev_feature(mask_addr, bit) \ |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index f3878fbe7786..6f18b509fb2f 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -1185,9 +1185,6 @@ struct net_device_ops { | |||
1185 | struct netpoll_info *info); | 1185 | struct netpoll_info *info); |
1186 | void (*ndo_netpoll_cleanup)(struct net_device *dev); | 1186 | void (*ndo_netpoll_cleanup)(struct net_device *dev); |
1187 | #endif | 1187 | #endif |
1188 | #ifdef CONFIG_NET_RX_BUSY_POLL | ||
1189 | int (*ndo_busy_poll)(struct napi_struct *dev); | ||
1190 | #endif | ||
1191 | int (*ndo_set_vf_mac)(struct net_device *dev, | 1188 | int (*ndo_set_vf_mac)(struct net_device *dev, |
1192 | int queue, u8 *mac); | 1189 | int queue, u8 *mac); |
1193 | int (*ndo_set_vf_vlan)(struct net_device *dev, | 1190 | int (*ndo_set_vf_vlan)(struct net_device *dev, |
diff --git a/net/core/dev.c b/net/core/dev.c index 727b6fda0e8c..4cde8bfb9bab 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -4978,7 +4978,6 @@ bool sk_busy_loop(struct sock *sk, int nonblock) | |||
4978 | { | 4978 | { |
4979 | unsigned long end_time = !nonblock ? sk_busy_loop_end_time(sk) : 0; | 4979 | unsigned long end_time = !nonblock ? sk_busy_loop_end_time(sk) : 0; |
4980 | int (*napi_poll)(struct napi_struct *napi, int budget); | 4980 | int (*napi_poll)(struct napi_struct *napi, int budget); |
4981 | int (*busy_poll)(struct napi_struct *dev); | ||
4982 | void *have_poll_lock = NULL; | 4981 | void *have_poll_lock = NULL; |
4983 | struct napi_struct *napi; | 4982 | struct napi_struct *napi; |
4984 | int rc; | 4983 | int rc; |
@@ -4993,17 +4992,10 @@ restart: | |||
4993 | if (!napi) | 4992 | if (!napi) |
4994 | goto out; | 4993 | goto out; |
4995 | 4994 | ||
4996 | /* Note: ndo_busy_poll method is optional in linux-4.5 */ | ||
4997 | busy_poll = napi->dev->netdev_ops->ndo_busy_poll; | ||
4998 | |||
4999 | preempt_disable(); | 4995 | preempt_disable(); |
5000 | for (;;) { | 4996 | for (;;) { |
5001 | rc = 0; | 4997 | rc = 0; |
5002 | local_bh_disable(); | 4998 | local_bh_disable(); |
5003 | if (busy_poll) { | ||
5004 | rc = busy_poll(napi); | ||
5005 | goto count; | ||
5006 | } | ||
5007 | if (!napi_poll) { | 4999 | if (!napi_poll) { |
5008 | unsigned long val = READ_ONCE(napi->state); | 5000 | unsigned long val = READ_ONCE(napi->state); |
5009 | 5001 | ||
@@ -6956,13 +6948,6 @@ static netdev_features_t netdev_fix_features(struct net_device *dev, | |||
6956 | features &= ~dev->gso_partial_features; | 6948 | features &= ~dev->gso_partial_features; |
6957 | } | 6949 | } |
6958 | 6950 | ||
6959 | #ifdef CONFIG_NET_RX_BUSY_POLL | ||
6960 | if (dev->netdev_ops->ndo_busy_poll) | ||
6961 | features |= NETIF_F_BUSY_POLL; | ||
6962 | else | ||
6963 | #endif | ||
6964 | features &= ~NETIF_F_BUSY_POLL; | ||
6965 | |||
6966 | return features; | 6951 | return features; |
6967 | } | 6952 | } |
6968 | 6953 | ||
diff --git a/net/core/ethtool.c b/net/core/ethtool.c index 6b3eee0834a0..d5f412b3093d 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c | |||
@@ -102,7 +102,6 @@ static const char netdev_features_strings[NETDEV_FEATURE_COUNT][ETH_GSTRING_LEN] | |||
102 | [NETIF_F_RXFCS_BIT] = "rx-fcs", | 102 | [NETIF_F_RXFCS_BIT] = "rx-fcs", |
103 | [NETIF_F_RXALL_BIT] = "rx-all", | 103 | [NETIF_F_RXALL_BIT] = "rx-all", |
104 | [NETIF_F_HW_L2FW_DOFFLOAD_BIT] = "l2-fwd-offload", | 104 | [NETIF_F_HW_L2FW_DOFFLOAD_BIT] = "l2-fwd-offload", |
105 | [NETIF_F_BUSY_POLL_BIT] = "busy-poll", | ||
106 | [NETIF_F_HW_TC_BIT] = "hw-tc-offload", | 105 | [NETIF_F_HW_TC_BIT] = "hw-tc-offload", |
107 | }; | 106 | }; |
108 | 107 | ||