Skip to content

Commit 8f1ead2

Browse files
herbertxdavem330
authored andcommitted
GRO: Disable GRO on legacy netif_rx path
When I fixed the GRO crash in the legacy receive path I used napi_complete to replace __napi_complete. Unfortunately they're not the same when NETPOLL is enabled, which may result in us not calling __napi_complete at all. What's more, we really do need to keep the __napi_complete call within the IRQ-off section since in theory an IRQ can occur in between and fill up the backlog to the maximum, causing us to lock up. Since we can't seem to find a fix that works properly right now, this patch reverts all the GRO support from the netif_rx path. Signed-off-by: Herbert Xu <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent be0ea69 commit 8f1ead2

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

net/core/dev.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2627,18 +2627,15 @@ static int process_backlog(struct napi_struct *napi, int quota)
26272627
local_irq_disable();
26282628
skb = __skb_dequeue(&queue->input_pkt_queue);
26292629
if (!skb) {
2630+
__napi_complete(napi);
26302631
local_irq_enable();
2631-
napi_complete(napi);
2632-
goto out;
2632+
break;
26332633
}
26342634
local_irq_enable();
26352635

2636-
napi_gro_receive(napi, skb);
2636+
netif_receive_skb(skb);
26372637
} while (++work < quota && jiffies == start_time);
26382638

2639-
napi_gro_flush(napi);
2640-
2641-
out:
26422639
return work;
26432640
}
26442641

0 commit comments

Comments
 (0)