• James Smart's avatar
    scsi: lpfc: Fix handling of trunk links state reporting · 19193ff3
    James Smart authored
    If all the trunk links drop and a single link resumes, the link_state is
    not properly reported. When trunked, the driver receives two async
    cqes. One acqe reports the trunk link states, which the driver records.
    The other cqe reports the overall state of the trunk. In the failing case,
    the trunk link state acqe preceeds the overall trunk link state acqe. The
    trunk link state acqe, as it's an "up" transition, calls a code path which
    ensures a down transition before moving to the up state.  The down
    transition had a side effect of clearing the just-saved trunk link states.
    
    Fix by not clearing the trunk link states if we've already transitioned
    to a down state.
    Signed-off-by: default avatarDick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    19193ff3
lpfc_hbadisc.c 199 KB