/**
* napi_synchronize - wait until NAPI is not running
-@@ -1835,6 +1825,8 @@ enum netdev_priv_flags {
+@@ -1842,6 +1832,8 @@ enum netdev_ml_priv_type {
*
* @wol_enabled: Wake-on-LAN is enabled
*
* @net_notifier_list: List of per-net netdev notifier block
* that follow this device when it is moved
* to another network namespace.
-@@ -2152,6 +2144,7 @@ struct net_device {
+@@ -2161,6 +2153,7 @@ struct net_device {
struct lock_class_key *qdisc_running_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;
-@@ -4254,6 +4276,21 @@ int gro_normal_batch __read_mostly = 8;
+@@ -4255,6 +4277,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);
}
-@@ -6705,6 +6742,12 @@ void netif_napi_add(struct net_device *d
+@@ -6746,6 +6783,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);
-@@ -6721,9 +6764,28 @@ void napi_disable(struct napi_struct *n)
+@@ -6762,9 +6805,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;
-@@ -6749,6 +6811,11 @@ void __netif_napi_del(struct napi_struct
+@@ -6790,6 +6852,11 @@ void __netif_napi_del(struct napi_struct
flush_gro_hash(napi);
napi->gro_bitmask = 0;
}
EXPORT_SYMBOL(__netif_napi_del);
-@@ -6830,6 +6897,51 @@ static int napi_poll(struct napi_struct
+@@ -6871,6 +6938,51 @@ static int napi_poll(struct napi_struct
return work;
}