diff options
author | Moritz Fischer <mdf@kernel.org> | 2019-09-03 19:35:07 -0700 |
---|---|---|
committer | Moritz Fischer <mdf@kernel.org> | 2019-09-03 19:35:07 -0700 |
commit | af9ca4b0bd0502bb134f18d394a613be371d2352 (patch) | |
tree | 37b1159d4456e223981dddde4795f2061c83d14c /net/ipv6/mcast.c | |
parent | cbb4a74478e9eef0f8ef437e95ef7645008988f7 (diff) | |
parent | 99097a214b0c15f7595ac8f2788662f3941c1992 (diff) | |
download | kernel_replicant_linux-af9ca4b0bd0502bb134f18d394a613be371d2352.tar.gz kernel_replicant_linux-af9ca4b0bd0502bb134f18d394a613be371d2352.tar.bz2 kernel_replicant_linux-af9ca4b0bd0502bb134f18d394a613be371d2352.zip |
Merge branch 'char-misc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc into fpga-dfl-for-5.4
Diffstat (limited to 'net/ipv6/mcast.c')
-rw-r--r-- | net/ipv6/mcast.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index 7f3f13c37916..eaa4c2cc2fbb 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c @@ -787,14 +787,15 @@ static void mld_del_delrec(struct inet6_dev *idev, struct ifmcaddr6 *im) if (pmc) { im->idev = pmc->idev; if (im->mca_sfmode == MCAST_INCLUDE) { - im->mca_tomb = pmc->mca_tomb; - im->mca_sources = pmc->mca_sources; + swap(im->mca_tomb, pmc->mca_tomb); + swap(im->mca_sources, pmc->mca_sources); for (psf = im->mca_sources; psf; psf = psf->sf_next) psf->sf_crcount = idev->mc_qrv; } else { im->mca_crcount = idev->mc_qrv; } in6_dev_put(pmc->idev); + ip6_mc_clear_src(pmc); kfree(pmc); } spin_unlock_bh(&im->mca_lock); |