scsi: allow LLDDs to expose the queue mapping to blk-mq
Just hand through the blk-mq map_queues method in the host template. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Родитель
9e5a7e2295
Коммит
2d9c5c20c9
|
@ -1990,6 +1990,15 @@ static void scsi_exit_request(void *data, struct request *rq,
|
|||
kfree(cmd->sense_buffer);
|
||||
}
|
||||
|
||||
static int scsi_map_queues(struct blk_mq_tag_set *set)
|
||||
{
|
||||
struct Scsi_Host *shost = container_of(set, struct Scsi_Host, tag_set);
|
||||
|
||||
if (shost->hostt->map_queues)
|
||||
return shost->hostt->map_queues(shost);
|
||||
return blk_mq_map_queues(set);
|
||||
}
|
||||
|
||||
static u64 scsi_calculate_bounce_limit(struct Scsi_Host *shost)
|
||||
{
|
||||
struct device *host_dev;
|
||||
|
@ -2082,6 +2091,7 @@ static struct blk_mq_ops scsi_mq_ops = {
|
|||
.timeout = scsi_timeout,
|
||||
.init_request = scsi_init_request,
|
||||
.exit_request = scsi_exit_request,
|
||||
.map_queues = scsi_map_queues,
|
||||
};
|
||||
|
||||
struct request_queue *scsi_mq_alloc_queue(struct scsi_device *sdev)
|
||||
|
|
|
@ -277,6 +277,14 @@ struct scsi_host_template {
|
|||
*/
|
||||
int (* change_queue_depth)(struct scsi_device *, int);
|
||||
|
||||
/*
|
||||
* This functions lets the driver expose the queue mapping
|
||||
* to the block layer.
|
||||
*
|
||||
* Status: OPTIONAL
|
||||
*/
|
||||
int (* map_queues)(struct Scsi_Host *shost);
|
||||
|
||||
/*
|
||||
* This function determines the BIOS parameters for a given
|
||||
* harddisk. These tend to be numbers that are made up by
|
||||
|
|
Загрузка…
Ссылка в новой задаче