mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 04:48:04 +09:00
net/ipv6: Correct PIM6 mrt_lock handling
[ Upstream commit 25b4a44c19 ]
In the IPv6 multicast routing code the mrt_lock was not being released
correctly in the MFC iterator, as a result adding or deleting a MIF would
cause a hang because the mrt_lock could not be acquired.
This fix is a copy of the code for the IPv4 case and ensures that the lock
is released correctly.
Signed-off-by: Richard Laing <richard.laing@alliedtelesis.co.nz>
Acked-by: Cong Wang <cwang@twopensource.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
162e3d1c34
commit
02b5ca779d
@@ -552,7 +552,7 @@ static void ipmr_mfc_seq_stop(struct seq_file *seq, void *v)
|
||||
|
||||
if (it->cache == &mrt->mfc6_unres_queue)
|
||||
spin_unlock_bh(&mfc_unres_lock);
|
||||
else if (it->cache == mrt->mfc6_cache_array)
|
||||
else if (it->cache == &mrt->mfc6_cache_array[it->ct])
|
||||
read_unlock(&mrt_lock);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user