diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_init.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_init.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index ef47b824cbed..16dc8c82b5ce 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c | |||
@@ -1616,7 +1616,11 @@ lpfc_pci_probe_one(struct pci_dev *pdev, const struct pci_device_id *pid) | |||
1616 | goto out_free_iocbq; | 1616 | goto out_free_iocbq; |
1617 | } | 1617 | } |
1618 | 1618 | ||
1619 | /* We can rely on a queue depth attribute only after SLI HBA setup */ | 1619 | /* |
1620 | * Set initial can_queue value since 0 is no longer supported and | ||
1621 | * scsi_add_host will fail. This will be adjusted later based on the | ||
1622 | * max xri value determined in hba setup. | ||
1623 | */ | ||
1620 | host->can_queue = phba->cfg_hba_queue_depth - 10; | 1624 | host->can_queue = phba->cfg_hba_queue_depth - 10; |
1621 | 1625 | ||
1622 | /* Tell the midlayer we support 16 byte commands */ | 1626 | /* Tell the midlayer we support 16 byte commands */ |
@@ -1656,6 +1660,12 @@ lpfc_pci_probe_one(struct pci_dev *pdev, const struct pci_device_id *pid) | |||
1656 | goto out_free_irq; | 1660 | goto out_free_irq; |
1657 | } | 1661 | } |
1658 | 1662 | ||
1663 | /* | ||
1664 | * hba setup may have changed the hba_queue_depth so we need to adjust | ||
1665 | * the value of can_queue. | ||
1666 | */ | ||
1667 | host->can_queue = phba->cfg_hba_queue_depth - 10; | ||
1668 | |||
1659 | lpfc_discovery_wait(phba); | 1669 | lpfc_discovery_wait(phba); |
1660 | 1670 | ||
1661 | if (phba->cfg_poll & DISABLE_FCP_RING_INT) { | 1671 | if (phba->cfg_poll & DISABLE_FCP_RING_INT) { |