Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
authorDavid S. Miller <davem@davemloft.net>
Sun, 14 Nov 2010 19:57:05 +0000 (11:57 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 14 Nov 2010 19:57:05 +0000 (11:57 -0800)
1  2 
net/decnet/af_decnet.c
net/ipv4/igmp.c
net/ipv4/tcp.c

Simple merge
diff --cc net/ipv4/igmp.c
index 6f49d6c087da87ebcc8f808c8daef2aedaab4fd1,3c53c2d89e3b47b3e42629bfe37086aeeeda7aa8..0f0e0f0279b8f3a7b6b565f78137e87495f1e07e
@@@ -2301,16 -2300,14 +2301,14 @@@ void ip_mc_drop_socket(struct sock *sk
                return;
  
        rtnl_lock();
 -      while ((iml = inet->mc_list) != NULL) {
 +      while ((iml = rtnl_dereference(inet->mc_list)) != NULL) {
                struct in_device *in_dev;
 -              rcu_assign_pointer(inet->mc_list, iml->next);
  
 +              inet->mc_list = iml->next_rcu;
                in_dev = inetdev_by_index(net, iml->multi.imr_ifindex);
                (void) ip_mc_leave_src(sk, iml, in_dev);
-               if (in_dev != NULL) {
+               if (in_dev != NULL)
                        ip_mc_dec_group(in_dev, iml->multi.imr_multiaddr.s_addr);
-                       in_dev_put(in_dev);
-               }
                /* decrease mem now to avoid the memleak warning */
                atomic_sub(sizeof(*iml), &sk->sk_omem_alloc);
                call_rcu(&iml->rcu, ip_mc_socklist_reclaim);
diff --cc net/ipv4/tcp.c
Simple merge