diff options
author | Florian Boor <florian.boor@kernelconcepts.de> | 2009-04-15 11:49:06 +0200 |
---|---|---|
committer | Florian Boor <florian.boor@kernelconcepts.de> | 2009-04-15 11:59:02 +0200 |
commit | 0328f2d7844b000c71650a14d8479fcf98b1a58e (patch) | |
tree | 60abb9d4eb43b4f0727649b1613af3224d678115 /recipes/linux/linux-2.6.29/micro2440/0012-GRO-Disable-GRO-on-legacy-netif_rx-path.patch | |
parent | 99fc9b7e925353cd03fde3847416379815436dd1 (diff) |
linux: initial micro2440 support for 2.6.29 using mini2440 kernel patches.
Diffstat (limited to 'recipes/linux/linux-2.6.29/micro2440/0012-GRO-Disable-GRO-on-legacy-netif_rx-path.patch')
-rw-r--r-- | recipes/linux/linux-2.6.29/micro2440/0012-GRO-Disable-GRO-on-legacy-netif_rx-path.patch | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/recipes/linux/linux-2.6.29/micro2440/0012-GRO-Disable-GRO-on-legacy-netif_rx-path.patch b/recipes/linux/linux-2.6.29/micro2440/0012-GRO-Disable-GRO-on-legacy-netif_rx-path.patch new file mode 100644 index 0000000000..bfad6d80eb --- /dev/null +++ b/recipes/linux/linux-2.6.29/micro2440/0012-GRO-Disable-GRO-on-legacy-netif_rx-path.patch @@ -0,0 +1,54 @@ +From 11c0b33d2a046a37bcd96528faa0e93359ef4a4b Mon Sep 17 00:00:00 2001 +From: Herbert Xu <herbert@gondor.apana.org.au> +Date: Thu, 26 Mar 2009 00:59:10 -0700 +Subject: [PATCH] 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 <herbert@gondor.apana.org.au> +Signed-off-by: David S. Miller <davem@davemloft.net> +Signed-off-by: Michel Pollet <buserror@gmail.com> +--- + net/core/dev.c | 9 +++------ + 1 files changed, 3 insertions(+), 6 deletions(-) + +diff --git a/net/core/dev.c b/net/core/dev.c +index e3fe5c7..e438f54 100644 +--- a/net/core/dev.c ++++ b/net/core/dev.c +@@ -2588,18 +2588,15 @@ static int process_backlog(struct napi_struct *napi, int quota) + local_irq_disable(); + skb = __skb_dequeue(&queue->input_pkt_queue); + if (!skb) { ++ __napi_complete(napi); + local_irq_enable(); +- napi_complete(napi); +- goto out; ++ break; + } + local_irq_enable(); + +- napi_gro_receive(napi, skb); ++ netif_receive_skb(skb); + } while (++work < quota && jiffies == start_time); + +- napi_gro_flush(napi); +- +-out: + return work; + } + +-- +1.5.6.3 + |