|
@@ -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)
|