2009-06-25 20:54:11

by Sergei Trofimovich

[permalink] [raw]
Subject: [Oops] 2.6.31-rc1: tun

Updated from 2.6.30 to 2.6.31-rc1

$ uname -a
Linux mosly 2.6.31-rc1 #16 SMP PREEMPT Thu Jun 25 22:14:24 EEST 2009 x86_64 Intel(R) Core(TM)2 Duo CPU U7600 @ 1.20GHz GenuineIntel GNU/Linux

All my tun interfaces stopped working. ICMP works but IP(TCP/UDP) does not.
Machine started to hang. I tried to reproduce in linux console. You see the .png result.
.config attached

P.S.: sorry, my lame skills allowed me to shrink 3MB jpg only down to 180KB.
--

Sergei


Attachments:
(No filename) (463.00 B)
.config (61.93 kB)
a-2.png (182.19 kB)
Download all attachments

2009-06-27 11:18:40

by Herbert Xu

[permalink] [raw]
Subject: Re: [Oops] 2.6.31-rc1: tun

Sergei Trofimovich <[email protected]> wrote:
>
> Updated from 2.6.30 to 2.6.31-rc1
>
> $ uname -a
> Linux mosly 2.6.31-rc1 #16 SMP PREEMPT Thu Jun 25 22:14:24 EEST 2009 x86_64 Intel(R) Core(TM)2 Duo CPU U7600 @ 1.20GHz GenuineIntel GNU/Linux
>
> All my tun interfaces stopped working. ICMP works but IP(TCP/UDP) does not.
> Machine started to hang. I tried to reproduce in linux console. You see the .png result.
> .config attached

This patch should help (already merged by davem).

diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
index 490ce20..db46b4b 100644
--- a/net/ipv4/ip_input.c
+++ b/net/ipv4/ip_input.c
@@ -440,6 +440,9 @@ int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt,
/* Remove any debris in the socket control block */
memset(IPCB(skb), 0, sizeof(struct inet_skb_parm));

+ /* Must drop socket now because of tproxy. */
+ skb_orphan(skb);
+
return NF_HOOK(PF_INET, NF_INET_PRE_ROUTING, skb, dev, NULL,
ip_rcv_finish);

diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c
index c3a07d7..6d6a427 100644
--- a/net/ipv6/ip6_input.c
+++ b/net/ipv6/ip6_input.c
@@ -139,6 +139,9 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt

rcu_read_unlock();

+ /* Must drop socket now because of tproxy. */
+ skb_orphan(skb);
+
return NF_HOOK(PF_INET6, NF_INET_PRE_ROUTING, skb, dev, NULL,
ip6_rcv_finish);
err:

Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2009-06-27 12:07:01

by Sergei Trofimovich

[permalink] [raw]
Subject: Re: [Oops] 2.6.31-rc1: tun

> > All my tun interfaces stopped working. ICMP works but IP(TCP/UDP) does not.
> > Machine started to hang. I tried to reproduce in linux console. You see the .png result.
> > .config attached
>
> This patch should help (already merged by davem).
>
cherry-picked 71f9dacd2e4d233029e9e956ca3f79531f411827 from
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git
onto current master from Linus.

openvpn works perfectly.

Thanks!

--

Sergei


Attachments:
signature.asc (198.00 B)