From: Manivannan Sadhasivam <manivannan.sadhasi...@linaro.org> Date: Mon, 5 Oct 2020 12:46:42 +0530
> The rcu_read_lock() is not supposed to lock the kernel_sendmsg() API > since it has the lock_sock() in qrtr_sendmsg() which will sleep. Hence, > fix it by excluding the locking for kernel_sendmsg(). > > While at it, let's also use radix_tree_deref_retry() to confirm the > validity of the pointer returned by radix_tree_deref_slot() and use > radix_tree_iter_resume() to resume iterating the tree properly before > releasing the lock as suggested by Doug. > > Fixes: a7809ff90ce6 ("net: qrtr: ns: Protect radix_tree_deref_slot() using > rcu read locks") > Reported-by: Douglas Anderson <diand...@chromium.org> > Reviewed-by: Douglas Anderson <diand...@chromium.org> > Tested-by: Douglas Anderson <diand...@chromium.org> > Tested-by: Alex Elder <el...@linaro.org> > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasi...@linaro.org> Applied, thank you.