summaryrefslogtreecommitdiffstats
path: root/net/ipv4/igmp.c
diff options
context:
space:
mode:
authorMike Marshall <hubcap@omnibond.com>2016-01-15 14:22:14 -0500
committerMike Marshall <hubcap@omnibond.com>2016-01-15 14:22:14 -0500
commit5e1f3938f9e4ef539031d639879cb1cea870fab5 (patch)
treeb262a7c002b05b7bc800a106d6ca6777dabe15bf /net/ipv4/igmp.c
parent1808f8cc6cb2842c53147eccfd5e88044d0d22a6 (diff)
parentafd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc (diff)
downloadop-kernel-dev-5e1f3938f9e4ef539031d639879cb1cea870fab5.zip
op-kernel-dev-5e1f3938f9e4ef539031d639879cb1cea870fab5.tar.gz
Orangefs: merge with V4.4
Merge tag 'v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into current Linux 4.4
Diffstat (limited to 'net/ipv4/igmp.c')
-rw-r--r--net/ipv4/igmp.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c
index 6baf36e..05e4cba 100644
--- a/net/ipv4/igmp.c
+++ b/net/ipv4/igmp.c
@@ -2126,7 +2126,7 @@ int ip_mc_leave_group(struct sock *sk, struct ip_mreqn *imr)
ASSERT_RTNL();
in_dev = ip_mc_find_dev(net, imr);
- if (!in_dev) {
+ if (!imr->imr_ifindex && !imr->imr_address.s_addr && !in_dev) {
ret = -ENODEV;
goto out;
}
@@ -2147,7 +2147,8 @@ int ip_mc_leave_group(struct sock *sk, struct ip_mreqn *imr)
*imlp = iml->next_rcu;
- ip_mc_dec_group(in_dev, group);
+ if (in_dev)
+ ip_mc_dec_group(in_dev, group);
/* decrease mem now to avoid the memleak warning */
atomic_sub(sizeof(*iml), &sk->sk_omem_alloc);
OpenPOWER on IntegriCloud