From: Mike Snitzer Date: Thu, 16 Feb 2023 17:10:05 +0000 (-0500) Subject: dm: add cond_resched() to dm_wq_requeue_work() X-Git-Tag: v6.6.17~5251^2~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f77692d65d54665d81815349cc727baa85e8b71d;p=platform%2Fkernel%2Flinux-rpi.git dm: add cond_resched() to dm_wq_requeue_work() Otherwise the while() loop in dm_wq_requeue_work() can result in a "dead loop" on systems that have preemption disabled. This is particularly problematic on single cpu systems. Fixes: 8b211aaccb915 ("dm: add two stage requeue mechanism") Cc: stable@vger.kernel.org Signed-off-by: Mike Snitzer --- diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 15b9195..adb002b 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -1009,6 +1009,7 @@ static void dm_wq_requeue_work(struct work_struct *work) io->next = NULL; __dm_io_complete(io, false); io = next; + cond_resched(); } }