Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ipv6: mcast: Delay put pmc->idev in mld_del_delrec()

pmc->idev is still used in ip6_mc_clear_src(), so as mld_clear_delrec()
does, the reference should be put after ip6_mc_clear_src() return.

Fixes: 63ed8de4be81 ("mld: add mc_lock for protecting per-interface mld data")
Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
Link: https://patch.msgid.link/20250714141957.3301871-1-yuehaibing@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Yue Haibing and committed by
Jakub Kicinski
ae3264a2 69a46a5b

+1 -1
+1 -1
net/ipv6/mcast.c
··· 807 807 } else { 808 808 im->mca_crcount = idev->mc_qrv; 809 809 } 810 - in6_dev_put(pmc->idev); 811 810 ip6_mc_clear_src(pmc); 811 + in6_dev_put(pmc->idev); 812 812 kfree_rcu(pmc, rcu); 813 813 } 814 814 }