diff options
author | Ming Lei <ming.lei@redhat.com> | 2021-08-03 10:06:08 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-08-10 05:00:26 +0300 |
commit | 11431e26c9c43fa26f6b33ee1a90989f57b86024 (patch) | |
tree | ffa97a8ceceb46d02e715ff6fb62ed20846818ec /block/Makefile | |
parent | fb7b9b0231ba8f77587c23f5257a4fdb6df1219e (diff) | |
download | linux-11431e26c9c43fa26f6b33ee1a90989f57b86024.tar.xz |
blk-iocost: fix lockdep warning on blkcg->lock
blkcg->lock depends on q->queue_lock which may depend on another driver
lock required in irq context, one example is dm-thin:
Chain exists of:
&pool->lock#3 --> &q->queue_lock --> &blkcg->lock
Possible interrupt unsafe locking scenario:
CPU0 CPU1
---- ----
lock(&blkcg->lock);
local_irq_disable();
lock(&pool->lock#3);
lock(&q->queue_lock);
<Interrupt>
lock(&pool->lock#3);
Fix the issue by using spin_lock_irq(&blkcg->lock) in ioc_weight_write().
Cc: Tejun Heo <tj@kernel.org>
Reported-by: Bruno Goncalves <bgoncalv@redhat.com>
Link: https://lore.kernel.org/linux-block/CA+QYu4rzz6079ighEanS3Qq_Dmnczcf45ZoJoHKVLVATTo1e4Q@mail.gmail.com/T/#u
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Acked-by: Tejun Heo <tj@kernel.org>
Link: https://lore.kernel.org/r/20210803070608.1766400-1-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/Makefile')
0 files changed, 0 insertions, 0 deletions