]> git.baikalelectronics.ru Git - kernel.git/commit
block, bfq: protect 'bfqd->queued' by 'bfqd->lock'
authorYu Kuai <yukuai3@huawei.com>
Fri, 13 May 2022 02:35:06 +0000 (10:35 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Nov 2022 16:57:54 +0000 (17:57 +0100)
commite3292c179b58bc45c1dddb7b18c7ac70ee55831d
tree218a0a7978006786d6150f5f05e4ca25ef64220e
parent2215bc54523fb281d9f029b353c14ccdf9bcf07f
block, bfq: protect 'bfqd->queued' by 'bfqd->lock'

commit cc7c9ad2fb13a2bbef77a3bd53b1bc53c89836c0 upstream.

If bfq_schedule_dispatch() is called from bfq_idle_slice_timer_body(),
then 'bfqd->queued' is read without holding 'bfqd->lock'. This is
wrong since it can be wrote concurrently.

Fix the problem by holding 'bfqd->lock' in such case.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Link: https://lore.kernel.org/r/20220513023507.2625717-2-yukuai3@huawei.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Cc: Khazhy Kumykov <khazhy@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
block/bfq-iosched.c