>From scsi driver view, it is a bit troublesome to support both blk-mq and non-blk-mq at the same time, especially when drivers need to support multi hw-queue.
This patch introduces 'force_blk_mq' to scsi_host_template so that drivers can provide blk-mq only support, so driver code can avoid the trouble for supporting both. Cc: Omar Sandoval <osan...@fb.com>, Cc: "Martin K. Petersen" <martin.peter...@oracle.com>, Cc: James Bottomley <james.bottom...@hansenpartnership.com>, Cc: Christoph Hellwig <h...@lst.de>, Cc: Don Brace <don.br...@microsemi.com> Cc: Kashyap Desai <kashyap.de...@broadcom.com> Cc: Mike Snitzer <snit...@redhat.com> Cc: Laurence Oberman <lober...@redhat.com> Reviewed-by: Hannes Reinecke <h...@suse.de> Reviewed-by: Christoph Hellwig <h...@lst.de> Signed-off-by: Ming Lei <ming....@redhat.com> --- drivers/scsi/hosts.c | 1 + include/scsi/scsi_host.h | 3 +++ 2 files changed, 4 insertions(+) diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c index 57bf43e34863..cbbc32df7595 100644 --- a/drivers/scsi/hosts.c +++ b/drivers/scsi/hosts.c @@ -477,6 +477,7 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize) shost->dma_boundary = 0xffffffff; shost->use_blk_mq = scsi_use_blk_mq; + shost->use_blk_mq = scsi_use_blk_mq || shost->hostt->force_blk_mq; device_initialize(&shost->shost_gendev); dev_set_name(&shost->shost_gendev, "host%d", shost->host_no); diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index 1a1df0d21ee3..6c6366f0bd15 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h @@ -452,6 +452,9 @@ struct scsi_host_template { /* True if the controller does not support WRITE SAME */ unsigned no_write_same:1; + /* True if the low-level driver supports blk-mq only */ + unsigned force_blk_mq:1; + /* * Countdown for host blocking with no commands outstanding. */ -- 2.9.5