scsi: smartpqi: Use host-wide tag space
authorDon Brace <don.brace@microchip.com>
Thu, 11 Mar 2021 20:14:57 +0000 (14:14 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 May 2021 12:47:27 +0000 (14:47 +0200)
[ Upstream commit c6d3ee209b9e863c6251f72101511340451ca324 ]

Correct SCSI midlayer sending more requests than exposed host queue depth
causing firmware ASSERT and lockup issues by enabling host-wide tags.

Note: This also results in better performance.

Link: https://lore.kernel.org/r/161549369787.25025.8975999483518581619.stgit@brunhilda
Suggested-by: Ming Lei <ming.lei@redhat.com>
Suggested-by: John Garry <john.garry@huawei.com>
Reviewed-by: Scott Benesh <scott.benesh@microchip.com>
Reviewed-by: Scott Teel <scott.teel@microchip.com>
Reviewed-by: Mike McGowen <mike.mcgowen@microchip.com>
Reviewed-by: Kevin Barnett <kevin.barnett@microchip.com>
Signed-off-by: Don Brace <don.brace@microchip.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/scsi/smartpqi/smartpqi_init.c

index 9d02296..9300a67 100644 (file)
@@ -6601,6 +6601,7 @@ static int pqi_register_scsi(struct pqi_ctrl_info *ctrl_info)
        shost->irq = pci_irq_vector(ctrl_info->pci_dev, 0);
        shost->unique_id = shost->irq;
        shost->nr_hw_queues = ctrl_info->num_queue_groups;
+       shost->host_tagset = 1;
        shost->hostdata[0] = (unsigned long)ctrl_info;
 
        rc = scsi_add_host(shost, &ctrl_info->pci_dev->dev);