diff mbox

[REGRESSION] linux-2.6.35-rc3 in net/core/dev.c

Message ID 201006131625.55481.mitov@issp.bas.bg
State Not Applicable, archived
Delegated to: David Miller
Headers show

Commit Message

Marin Mitov June 13, 2010, 1:25 p.m. UTC
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

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Jindřich Makovička June 13, 2010, 2:54 p.m. UTC | #1
On Sun, 13 Jun 2010 16:25:54 +0300
Marin Mitov <mitov@issp.bas.bg> wrote:

> 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
[...]
> 
> 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.

I can confirm this. Reverting of this patch fixes a regression with
Privoxy running on localhost, where most of the connections
(browser->proxy) stall and don't return anything.
Heinz Diehl June 13, 2010, 3:28 p.m. UTC | #2
On 13.06.2010, Jindrich Makovicka wrote: 

> I can confirm this. Reverting of this patch fixes a regression with
> Privoxy running on localhost, where most of the connections
> (browser->proxy) stall and don't return anything.

This does also fix this bug:
https://bugzilla.kernel.org/show_bug.cgi?id=16188

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Maciej Rutecki June 16, 2010, 7:27 p.m. UTC | #3
On niedziela, 13 czerwca 2010 o 15:25:54 Marin Mitov wrote:
> 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
> 

I created a Bugzilla entry at 
https://bugzilla.kernel.org/show_bug.cgi?id=16229
for your bug report, please add your address to the CC list in there, thanks!
diff mbox

Patch

===========================================================
--- 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;
 	}