Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c4ec749 authored by David S. Miller's avatar David S. Miller
Browse files

net: Init backlog NAPI's gro_hash.



Based upon a patch by Sean Tranchetti.

Fixes: d4546c25 ("net: Convert GRO SKB handling to list_head.")
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 99d20a46
Loading
Loading
Loading
Loading
+12 −6
Original line number Original line Diff line number Diff line
@@ -6115,19 +6115,24 @@ static enum hrtimer_restart napi_watchdog(struct hrtimer *timer)
	return HRTIMER_NORESTART;
	return HRTIMER_NORESTART;
}
}


void netif_napi_add(struct net_device *dev, struct napi_struct *napi,
static void init_gro_hash(struct napi_struct *napi)
		    int (*poll)(struct napi_struct *, int), int weight)
{
{
	int i;
	int i;


	INIT_LIST_HEAD(&napi->poll_list);
	hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED);
	napi->timer.function = napi_watchdog;
	napi->gro_bitmask = 0;
	for (i = 0; i < GRO_HASH_BUCKETS; i++) {
	for (i = 0; i < GRO_HASH_BUCKETS; i++) {
		INIT_LIST_HEAD(&napi->gro_hash[i].list);
		INIT_LIST_HEAD(&napi->gro_hash[i].list);
		napi->gro_hash[i].count = 0;
		napi->gro_hash[i].count = 0;
	}
	}
	napi->gro_bitmask = 0;
}

void netif_napi_add(struct net_device *dev, struct napi_struct *napi,
		    int (*poll)(struct napi_struct *, int), int weight)
{
	INIT_LIST_HEAD(&napi->poll_list);
	hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED);
	napi->timer.function = napi_watchdog;
	init_gro_hash(napi);
	napi->skb = NULL;
	napi->skb = NULL;
	napi->poll = poll;
	napi->poll = poll;
	if (weight > NAPI_POLL_WEIGHT)
	if (weight > NAPI_POLL_WEIGHT)
@@ -9554,6 +9559,7 @@ static int __init net_dev_init(void)
		sd->cpu = i;
		sd->cpu = i;
#endif
#endif


		init_gro_hash(&sd->backlog);
		sd->backlog.poll = process_backlog;
		sd->backlog.poll = process_backlog;
		sd->backlog.weight = weight_p;
		sd->backlog.weight = weight_p;
	}
	}