scsi: lpfc: Fix initial FLOGI failure due to BBSCN not supported
authorJames Smart <james.smart@broadcom.com>
Fri, 11 Sep 2020 20:01:47 +0000 (13:01 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 15 Sep 2020 22:45:42 +0000 (18:45 -0400)
commit7f04839ec4483563f38062b4dd90253e45447198
treea2d21945cf62c6b30924e57ca353b93092a691c7
parent244359c99fd90f1c61c3944f93250f8219435c75
scsi: lpfc: Fix initial FLOGI failure due to BBSCN not supported

Initial FLOGIs are failing with the following message:

 lpfc 0000:13:00.1: 1:(0):0820 FLOGI Failed (x300). BBCredit Not Supported

In a prior patch, the READ_SPARAM command was re-ordered to post after
CONFIG_LINK as the driver is expected to update the driver's copy of the
service parameters for the FLOGI payload. If the bb-credit recovery feature
is enabled, this is fine. But on adapters were bb-credit recovery isn't
enabled, it would cause the FLOGI to fail.

Fix by restoring the original command order (READ_SPARAM before
CONFIG_LINK), and after issuing CONFIG_LINK, detect bb-credit recovery
support and reissuing READ_SPARAM to obtain the updated service parameters
(effectively adding in the fix command order).

[mkp: corrected SHA]

Link: https://lore.kernel.org/r/20200911200147.110826-1-james.smart@broadcom.com
Fixes: 835214f5d5f5 ("scsi: lpfc: Fix broken Credit Recovery after driver load")
CC: <stable@vger.kernel.org> # v5.7+
Co-developed-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_hbadisc.c