• Shannon Nelson's avatar
    ionic: catch transition back to RUNNING with fw_generation 0 · 12b1b997
    Shannon Nelson authored
    In some graceful updates that get initially triggered by the
    RESET event, especially with older firmware, the fw_generation
    bits don't change but the fw_status is seen to go to 0 then back
    to 1.  However, the driver didn't perform the restart, remained
    waiting for fw_generation to change, and got left in limbo.
    
    This is because the clearing of idev->fw_status_ready to 0
    didn't happen correctly as it was buried in the transition
    trigger: since the transition down was triggered not here
    but in the RESET event handler, the clear to 0 didn't happen,
    so the transition back to 1 wasn't detected.
    
    Fix this particular case by bringing the setting of
    idev->fw_status_ready back out to where it was before.
    
    Fixes: 398d1e37 ("ionic: add FW_STOPPING state")
    Signed-off-by: default avatarShannon Nelson <snelson@pensando.io>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    12b1b997
ionic_dev.c 18.5 KB