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 scm-commits
mailing list