[REGRESSION]linux-2.6.35-rc3 in net/core/dev.c
From: Marin Mitov
Date: Sun Jun 13 2010 - 09:29:07 EST
Hi all,
I am using ssh with port redirection to log on host_at_work:
ssh -L20110:mail:110 host_at_work
With linux-2.6.35-rc3, when I telnet to localhost I get:
telnet localhost 20110
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection timed out
but the connection at host_at_work stays ESTABLISHED
With older kernels at home (linux-2.6.33.4) when I telnet I have:
telnet localhost 20110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK
quit
+OK
Connection closed by foreign host.
I have seen the posting on LKML:
http://lkml.org/lkml/2010/6/13/11
and decided to revert the patch mentioned their (see bellow).
The revert solves the problem for me.
Regards
Marin Mitov
===========================================================
--- a/net/core/dev.c 2010-06-13 13:21:36.000000000 +0300
+++ b/net/core/dev.c 2010-06-13 12:39:31.000000000 +0300
@@ -2810,13 +2810,24 @@
if (!skb->skb_iif)
skb->skb_iif = skb->dev->ifindex;
+ /*
+ * bonding note: skbs received on inactive slaves should only
+ * be delivered to pkt handlers that are exact matches. Also
+ * the deliver_no_wcard flag will be set. If packet handlers
+ * are sensitive to duplicate packets these skbs will need to
+ * be dropped at the handler. The vlan accel path may have
+ * already set the deliver_no_wcard flag.
+ */
null_or_orig = NULL;
orig_dev = skb->dev;
master = ACCESS_ONCE(orig_dev->master);
- if (master) {
- if (skb_bond_should_drop(skb, master))
+ if (skb->deliver_no_wcard)
+ null_or_orig = orig_dev;
+ else if (master) {
+ if (skb_bond_should_drop(skb, master)) {
+ skb->deliver_no_wcard = 1;
null_or_orig = orig_dev; /* deliver only exact match */
- else
+ } else
skb->dev = master;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/