aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/generate_rust_target.rs
diff options
context:
space:
mode:
authorMing Lei <[email protected]>2025-08-15 13:17:37 +0000
committerJens Axboe <[email protected]>2025-08-21 11:34:19 +0000
commit2d82f3bd8910eb65e30bb2a3c9b945bfb3b6d661 (patch)
treedd1836965ef0c7194a3a62ab7506aac0fa0fff59 /scripts/generate_rust_target.rs
parentblock: tone down bio_check_eod (diff)
downloadkernel-2d82f3bd8910eb65e30bb2a3c9b945bfb3b6d661.tar.gz
kernel-2d82f3bd8910eb65e30bb2a3c9b945bfb3b6d661.zip
blk-mq: fix lockdep warning in __blk_mq_update_nr_hw_queues
Commit 5989bfe6ac6b ("block: restore two stage elevator switch while running nr_hw_queue update") reintroduced a lockdep warning by calling blk_mq_freeze_queue_nomemsave() before switching the I/O scheduler. The function blk_mq_elv_switch_none() calls elevator_change_done(). Running this while the queue is frozen causes a lockdep warning. Fix this by reordering the operations: first, switch the I/O scheduler to 'none', and then freeze the queue. This ensures that elevator_change_done() is not called on an already frozen queue. And this way is safe because elevator_set_none() does freeze queue before switching to none. Also we still have to rely on blk_mq_elv_switch_back() for switching back, and it has to cover unfrozen queue case. Cc: Nilay Shroff <[email protected]> Cc: Yu Kuai <[email protected]> Fixes: 5989bfe6ac6b ("block: restore two stage elevator switch while running nr_hw_queue update") Signed-off-by: Ming Lei <[email protected]> Reviewed-by: Yu Kuai <[email protected]> Reviewed-by: Nilay Shroff <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
Diffstat (limited to 'scripts/generate_rust_target.rs')
0 files changed, 0 insertions, 0 deletions