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