--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
-@@ -347,6 +347,7 @@ struct napi_struct {
+@@ -349,6 +349,7 @@ struct napi_struct {
struct list_head dev_list;
struct hlist_node napi_hash_node;
unsigned int napi_id;
};
enum {
-@@ -357,6 +358,7 @@ enum {
+@@ -359,6 +360,7 @@ enum {
NAPI_STATE_HASHED, /* In NAPI hash (busy polling possible) */
NAPI_STATE_NO_BUSY_POLL,/* Do not add in napi_hash, no busy polling */
NAPI_STATE_IN_BUSY_POLL,/* sk_busy_loop() owns this NAPI */
};
enum {
-@@ -367,6 +369,7 @@ enum {
+@@ -369,6 +371,7 @@ enum {
NAPIF_STATE_HASHED = BIT(NAPI_STATE_HASHED),
NAPIF_STATE_NO_BUSY_POLL = BIT(NAPI_STATE_NO_BUSY_POLL),
NAPIF_STATE_IN_BUSY_POLL = BIT(NAPI_STATE_IN_BUSY_POLL),
};
enum gro_result {
-@@ -511,20 +514,7 @@ bool napi_hash_del(struct napi_struct *n
+@@ -513,20 +516,7 @@ bool napi_hash_del(struct napi_struct *n
*/
void napi_disable(struct napi_struct *n);
/**
* napi_synchronize - wait until NAPI is not running
-@@ -1790,6 +1780,8 @@ enum netdev_ml_priv_type {
+@@ -1792,6 +1782,8 @@ enum netdev_ml_priv_type {
*
* @wol_enabled: Wake-on-LAN is enabled
*
* FIXME: cleanup struct net_device such that network protocol info
* moves out.
*/
-@@ -2082,6 +2074,7 @@ struct net_device {
+@@ -2084,6 +2076,7 @@ struct net_device {
struct lock_class_key addr_list_lock_key;
bool proto_down;
unsigned wol_enabled:1;
static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack)
{
const struct net_device_ops *ops = dev->netdev_ops;
-@@ -3889,6 +3911,21 @@ int gro_normal_batch __read_mostly = 8;
+@@ -3891,6 +3913,21 @@ int gro_normal_batch __read_mostly = 8;
static inline void ____napi_schedule(struct softnet_data *sd,
struct napi_struct *napi)
{
list_add_tail(&napi->poll_list, &sd->poll_list);
__raise_softirq_irqoff(NET_RX_SOFTIRQ);
}
-@@ -6280,6 +6317,12 @@ void netif_napi_add(struct net_device *d
+@@ -6282,6 +6319,12 @@ void netif_napi_add(struct net_device *d
set_bit(NAPI_STATE_NPSVC, &napi->state);
list_add_rcu(&napi->dev_list, &dev->napi_list);
napi_hash_add(napi);
}
EXPORT_SYMBOL(netif_napi_add);
-@@ -6296,9 +6339,28 @@ void napi_disable(struct napi_struct *n)
+@@ -6298,9 +6341,28 @@ void napi_disable(struct napi_struct *n)
hrtimer_cancel(&n->timer);
clear_bit(NAPI_STATE_DISABLE, &n->state);
static void flush_gro_hash(struct napi_struct *napi)
{
int i;
-@@ -6323,6 +6385,11 @@ void netif_napi_del(struct napi_struct *
+@@ -6325,6 +6387,11 @@ void netif_napi_del(struct napi_struct *
flush_gro_hash(napi);
napi->gro_bitmask = 0;
}
EXPORT_SYMBOL(netif_napi_del);
-@@ -6402,6 +6469,51 @@ static int napi_poll(struct napi_struct
+@@ -6404,6 +6471,51 @@ static int napi_poll(struct napi_struct
return work;
}