> diff --git a/block/blk-mq-cpumap.c b/block/blk-mq-cpumap.c > index 9638b25fd521..43c039900ef6 100644 > --- a/block/blk-mq-cpumap.c > +++ b/block/blk-mq-cpumap.c > @@ -11,10 +11,23 @@ > #include <linux/smp.h> > #include <linux/cpu.h> > #include <linux/group_cpus.h> > +#include <linux/sched/isolation.h> > > #include "blk.h" > #include "blk-mq.h" > > +unsigned int blk_mq_num_possible_queues(void) > +{ > + const struct cpumask *io_queue_mask; > + > + io_queue_mask = housekeeping_cpumask(HK_TYPE_IO_QUEUE); > + if (!cpumask_empty(io_queue_mask)) > + return cpumask_weight(io_queue_mask); > + > + return num_possible_cpus(); > +} > +EXPORT_SYMBOL_GPL(blk_mq_num_possible_queues); This should be split into a separate patch. And it could really use a kerneldoc comment. > - return num_possible_cpus() + dev->nr_write_queues + dev->nr_poll_queues; > + return blk_mq_num_possible_queues() + dev->nr_write_queues + dev->nr_poll_queues; Please avoid the overly long line here. Otherwise this looks good to me.