--- zzzz-none-000/linux-2.6.19.2/net/ipv6/ip6_tunnel.c 2007-01-10 19:10:37.000000000 +0000 +++ davinci-8020-5504/linux-2.6.19.2/net/ipv6/ip6_tunnel.c 2007-01-11 07:38:19.000000000 +0000 @@ -542,7 +542,6 @@ skb->dev = t->dev; dst_release(skb->dst); skb->dst = NULL; - nf_reset(skb); if (t->parms.flags & IP6_TNL_F_RCV_DSCP_COPY) ipv6_copy_dscp(ipv6h, skb->nh.ipv6h); ip6ip6_ecn_decapsulate(ipv6h, skb); @@ -1150,20 +1149,6 @@ return err; } -static void __exit ip6ip6_destroy_tunnels(void) -{ - int h; - struct ip6_tnl *t; - - for (h = 0; h < HASH_SIZE; h++) { - while ((t = tnls_r_l[h]) != NULL) - unregister_netdevice(t->dev); - } - - t = tnls_wc[0]; - unregister_netdevice(t->dev); -} - /** * ip6_tunnel_cleanup - free resources and unregister protocol **/ @@ -1173,9 +1158,7 @@ if (xfrm6_tunnel_deregister(&ip6ip6_handler)) printk(KERN_INFO "ip6ip6 close: can't deregister tunnel\n"); - rtnl_lock(); - ip6ip6_destroy_tunnels(); - rtnl_unlock(); + unregister_netdev(ip6ip6_fb_tnl_dev); } module_init(ip6_tunnel_init);