Correct scsi-mid-layer sending more requests than exposed host Q depth causing firmware ASSERT and lockup issue by enabling host wide tags and setting nr_hw_queues to 1. Note: this also results in better performance. Suggested-by: Ming Lei <ming.lei@xxxxxxxxxx> Suggested-by: John Gary <john.gary@xxxxxxxxxx> Reviewed-by: Scott Benesh <scott.benesh@xxxxxxxxxxxxx> Reviewed-by: Scott Teel <scott.teel@xxxxxxxxxxxxx> Reviewed-by: Kevin Barnett <kevin.barnett@xxxxxxxxxxxxx> Signed-off-by: Don Brace <don.brace@xxxxxxxxxxxxx> --- drivers/scsi/smartpqi/smartpqi_init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c index c53f456fbd09..c154e4578e55 100644 --- a/drivers/scsi/smartpqi/smartpqi_init.c +++ b/drivers/scsi/smartpqi/smartpqi_init.c @@ -6598,7 +6598,8 @@ static int pqi_register_scsi(struct pqi_ctrl_info *ctrl_info) shost->transportt = pqi_sas_transport_template; 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->nr_hw_queues = 1; + shost->host_tagset = 1; shost->hostdata[0] = (unsigned long)ctrl_info; rc = scsi_add_host(shost, &ctrl_info->pci_dev->dev);