mirror of https://gitee.com/openkylin/linux.git
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:
parent
9e5a7e2295
commit
2d9c5c20c9
|
@ -1990,6 +1990,15 @@ static void scsi_exit_request(void *data, struct request *rq,
|
||||||
kfree(cmd->sense_buffer);
|
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)
|
static u64 scsi_calculate_bounce_limit(struct Scsi_Host *shost)
|
||||||
{
|
{
|
||||||
struct device *host_dev;
|
struct device *host_dev;
|
||||||
|
@ -2082,6 +2091,7 @@ static struct blk_mq_ops scsi_mq_ops = {
|
||||||
.timeout = scsi_timeout,
|
.timeout = scsi_timeout,
|
||||||
.init_request = scsi_init_request,
|
.init_request = scsi_init_request,
|
||||||
.exit_request = scsi_exit_request,
|
.exit_request = scsi_exit_request,
|
||||||
|
.map_queues = scsi_map_queues,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct request_queue *scsi_mq_alloc_queue(struct scsi_device *sdev)
|
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);
|
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
|
* This function determines the BIOS parameters for a given
|
||||||
* harddisk. These tend to be numbers that are made up by
|
* harddisk. These tend to be numbers that are made up by
|
||||||
|
|
Loading…
Reference in New Issue