Re: [syzbot] [block?] BUG: corrupted list in loop_process_work
From: Hillf Danton
Date: Sat Feb 15 2025 - 18:44:06 EST
On Fri, 14 Feb 2025 11:58:24 -0800
> syzbot found the following issue on:
>
> HEAD commit: c674aa7c289e Add linux-next specific files for 20250212
> git tree: linux-next
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=17e18aa4580000
#syz test
--- x/drivers/block/loop.c
+++ y/drivers/block/loop.c
@@ -1974,7 +1974,8 @@ static void loop_process_work(struct loo
*/
if (worker && !work_pending(&worker->work)) {
worker->last_ran_at = jiffies;
- list_add_tail(&worker->idle_list, &lo->idle_worker_list);
+ if (list_empty(&worker->idle_list))
+ list_add_tail(&worker->idle_list, &lo->idle_worker_list);
loop_set_timer(lo);
}
spin_unlock_irq(&lo->lo_work_lock);
--