rpms/kernel/F-10 linux-2.6-net-fix-gro-bug.patch, NONE, 1.1 kernel.spec, 1.1307, 1.1308

Chuck Ebbert cebbert at fedoraproject.org
Sat Mar 28 00:54:52 UTC 2009


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv32406

Modified Files:
	kernel.spec 
Added Files:
	linux-2.6-net-fix-gro-bug.patch 
Log Message:
Fix 2.6.29 networking lockups.

linux-2.6-net-fix-gro-bug.patch:

--- NEW FILE linux-2.6-net-fix-gro-bug.patch ---
http://marc.info/?l=linux-kernel&m=123819452727313&w=4


It's a known problem, the following fix will be submitted
to 2.6.29.1 over the weekend.

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 at gondor.apana.org.au>
Signed-off-by: David S. Miller <davem at davemloft.net>
---
 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 052dd47..63ec4bf 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2627,18 +2627,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;
 }
 


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/kernel.spec,v
retrieving revision 1.1307
retrieving revision 1.1308
diff -u -r1.1307 -r1.1308
--- kernel.spec	26 Mar 2009 22:36:15 -0000	1.1307
+++ kernel.spec	28 Mar 2009 00:54:21 -0000	1.1308
@@ -677,6 +677,9 @@
 #Adding dropmonitor bits from 2.6.30
 Patch9011: linux-2.6-dropwatch-protocol.patch
 
+# fix for net lockups, will be in 2.6.29.1
+Patch9100: linux-2.6-net-fix-gro-bug.patch
+
 %endif
 
 BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
@@ -1220,6 +1223,8 @@
 # Apply dropmonitor protocol bits from 2.6..30 net-next tree
 ApplyPatch linux-2.6-dropwatch-protocol.patch
 
+ApplyPatch linux-2.6-net-fix-gro-bug.patch
+
 # ======= END OF PATCH APPLICATIONS =============================
 
 %endif
@@ -1796,10 +1801,13 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
-* Wed Mar 26 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29-7
+* Fri Mar 27 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29-8
+- Fix 2.6.29 networking lockups.
+
+* Thu Mar 26 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29-7
 - Fix locking in net/xfrm/xfrm_state.c (f11#489764)
 
-* Wed Mar 26 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29-6
+* Thu Mar 26 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29-6
 - Add upstream relatime patches but don't make relatime the default.
 
 * Wed Mar 25 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29-5




More information about the fedora-extras-commits mailing list