diff options
author | Christoph Hellwig <hch@lst.de> | 2025-01-10 06:47:12 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2025-01-10 07:29:23 -0700 |
commit | d432c817c21a48c3baaa0d28e4d3e74b6aa238a0 (patch) | |
tree | 3203b56d551d7859ba3841f9c1dfa2031afbd83f /include/drm/drm_encoder_slave.h | |
parent | 958148a6ac061a9a80a184ea678a5fa872d0c56f (diff) | |
download | linux-d432c817c21a48c3baaa0d28e4d3e74b6aa238a0.tar.gz linux-d432c817c21a48c3baaa0d28e4d3e74b6aa238a0.tar.bz2 linux-d432c817c21a48c3baaa0d28e4d3e74b6aa238a0.zip |
block: don't update BLK_FEAT_POLL in __blk_mq_update_nr_hw_queues
When __blk_mq_update_nr_hw_queues changes the number of tag sets, it
might have to disable poll queues. Currently it does so by adjusting
the BLK_FEAT_POLL, which is a bit against the intent of features that
describe hardware / driver capabilities, but more importantly causes
nasty lock order problems with the broadly held freeze when updating the
number of hardware queues and the limits lock. Fix this by leaving
BLK_FEAT_POLL alone, and instead check for the number of poll queues in
the bio submission and poll handlers. While this adds extra work to the
fast path, the variables are in cache lines used by these operations
anyway, so it should be cheap enough.
Fixes: 8023e144f9d6 ("block: move the poll flag to queue_limits")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Nilay Shroff <nilay@linux.ibm.com>
Link: https://lore.kernel.org/r/20250110054726.1499538-5-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/drm/drm_encoder_slave.h')
0 files changed, 0 insertions, 0 deletions