diff --git a/[refs] b/[refs] index 64954b4e2834..1b3a7387d8d3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: aa58163a76a3aef33c7220931543d45d0fe43753 +refs/heads/master: 18943d292facbc70e6a36fc62399ae833f64671b diff --git a/trunk/net/ipv4/igmp.c b/trunk/net/ipv4/igmp.c index c8877c6c7216..3c53c2d89e3b 100644 --- a/trunk/net/ipv4/igmp.c +++ b/trunk/net/ipv4/igmp.c @@ -2306,10 +2306,8 @@ void ip_mc_drop_socket(struct sock *sk) 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);