Certain older adapters such as the OneConnect OCe10100 may not have a valid 
wqpcnt
value.  In this case, do not set queue->page_count to 0 in 
lpfc_sli4_queue_alloc()
as this will prevent the driver from initializing.

Fixes: 895427bd01 ("scsi: lpfc: NVME Initiator: Base modifications")
Cc: [email protected] # 4.11+
Signed-off-by: Ewan D. Milne <[email protected]>
---
 drivers/scsi/lpfc/lpfc_sli.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index b9e5cd7..462ed4a 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -14501,7 +14501,8 @@ lpfc_sli4_queue_alloc(struct lpfc_hba *phba, uint32_t 
page_size,
                        hw_page_size))/hw_page_size;
 
        /* If needed, Adjust page count to match the max the adapter supports */
-       if (queue->page_count > phba->sli4_hba.pc_sli4_params.wqpcnt)
+       if (phba->sli4_hba.pc_sli4_params.wqpcnt &&
+           (queue->page_count > phba->sli4_hba.pc_sli4_params.wqpcnt))
                queue->page_count = phba->sli4_hba.pc_sli4_params.wqpcnt;
 
        INIT_LIST_HEAD(&queue->list);
-- 
2.1.0

Reply via email to