aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/loop.c
diff options
context:
space:
mode:
authorZhaoyang Huang <zhaoyang.huang@unisoc.com>2025-02-18 14:58:35 +0800
committerJens Axboe <axboe@kernel.dk>2025-02-18 09:28:26 -0700
commit02b3c61aab443d8c1cc7d7eb0ae0a8d86b547224 (patch)
tree9b31d6235447f89092bff8d1603659034e3f860f /drivers/block/loop.c
parentblock: refactor rq_qos_wait() (diff)
downloadlinux-02b3c61aab443d8c1cc7d7eb0ae0a8d86b547224.tar.gz
linux-02b3c61aab443d8c1cc7d7eb0ae0a8d86b547224.zip
Revert "driver: block: release the lo_work_lock before queue_work"
This reverts commit ad934fc1784802fd1408224474b25ee5289fadfc. loop_queue_work should be strictly serialized to loop_process_work since the lo_worker could be freed without noticing new work has been queued again. Signed-off-by: Zhaoyang Huang <zhaoyang.huang@unisoc.com> Link: https://lore.kernel.org/r/20250218065835.19503-1-zhaoyang.huang@unisoc.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/block/loop.c')
-rw-r--r--drivers/block/loop.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 68c943a77e41..c05fe27a96b6 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -894,8 +894,8 @@ queue_work:
cmd_list = &lo->rootcg_cmd_list;
}
list_add_tail(&cmd->list_entry, cmd_list);
- spin_unlock_irq(&lo->lo_work_lock);
queue_work(lo->workqueue, work);
+ spin_unlock_irq(&lo->lo_work_lock);
}
static void loop_set_timer(struct loop_device *lo)