scsi: core: Set shost as hctx driver_data
hctx->driver_data is not set for SCSI currently. Set hctx->driver_data = shost. Link: https://lore.kernel.org/r/20210215074048.19424-6-kashyap.desai@broadcom.com Suggested-by: John Garry <john.garry@huawei.com> Reviewed-by: John Garry <john.garry@huawei.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
4a0c6f432d
commit
4309ea74b0
|
@ -1813,9 +1813,7 @@ static void scsi_mq_exit_request(struct blk_mq_tag_set *set, struct request *rq,
|
|||
|
||||
static int scsi_mq_poll(struct blk_mq_hw_ctx *hctx)
|
||||
{
|
||||
struct request_queue *q = hctx->queue;
|
||||
struct scsi_device *sdev = q->queuedata;
|
||||
struct Scsi_Host *shost = sdev->host;
|
||||
struct Scsi_Host *shost = hctx->driver_data;
|
||||
|
||||
if (shost->hostt->mq_poll)
|
||||
return shost->hostt->mq_poll(shost, hctx->queue_num);
|
||||
|
@ -1823,6 +1821,15 @@ static int scsi_mq_poll(struct blk_mq_hw_ctx *hctx)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int scsi_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
|
||||
unsigned int hctx_idx)
|
||||
{
|
||||
struct Scsi_Host *shost = data;
|
||||
|
||||
hctx->driver_data = shost;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int scsi_map_queues(struct blk_mq_tag_set *set)
|
||||
{
|
||||
struct Scsi_Host *shost = container_of(set, struct Scsi_Host, tag_set);
|
||||
|
@ -1890,6 +1897,7 @@ static const struct blk_mq_ops scsi_mq_ops_no_commit = {
|
|||
.cleanup_rq = scsi_cleanup_rq,
|
||||
.busy = scsi_mq_lld_busy,
|
||||
.map_queues = scsi_map_queues,
|
||||
.init_hctx = scsi_init_hctx,
|
||||
.poll = scsi_mq_poll,
|
||||
.set_rq_budget_token = scsi_mq_set_rq_budget_token,
|
||||
.get_rq_budget_token = scsi_mq_get_rq_budget_token,
|
||||
|
@ -1898,9 +1906,7 @@ static const struct blk_mq_ops scsi_mq_ops_no_commit = {
|
|||
|
||||
static void scsi_commit_rqs(struct blk_mq_hw_ctx *hctx)
|
||||
{
|
||||
struct request_queue *q = hctx->queue;
|
||||
struct scsi_device *sdev = q->queuedata;
|
||||
struct Scsi_Host *shost = sdev->host;
|
||||
struct Scsi_Host *shost = hctx->driver_data;
|
||||
|
||||
shost->hostt->commit_rqs(shost, hctx->queue_num);
|
||||
}
|
||||
|
@ -1921,6 +1927,7 @@ static const struct blk_mq_ops scsi_mq_ops = {
|
|||
.cleanup_rq = scsi_cleanup_rq,
|
||||
.busy = scsi_mq_lld_busy,
|
||||
.map_queues = scsi_map_queues,
|
||||
.init_hctx = scsi_init_hctx,
|
||||
.poll = scsi_mq_poll,
|
||||
.set_rq_budget_token = scsi_mq_set_rq_budget_token,
|
||||
.get_rq_budget_token = scsi_mq_get_rq_budget_token,
|
||||
|
|
Loading…
Reference in New Issue