• Shannon Nelson's avatar
    pds_core: health timer and workqueue · c2dbb090
    Shannon Nelson authored
    Add in the periodic health check and the related workqueue,
    as well as the handlers for when a FW reset is seen.
    
    The firmware is polled every 5 seconds to be sure that it is
    still alive and that the FW generation didn't change.
    
    The alive check looks to see that the PCI bus is still readable
    and the fw_status still has the RUNNING bit on.  If not alive,
    the driver stops activity and tears things down.  When the FW
    recovers and the alive check again succeeds, the driver sets
    back up for activity.
    
    The generation check looks at the fw_generation to see if it
    has changed, which can happen if the FW crashed and recovered
    or was updated in between health checks.  If changed, the
    driver counts that as though the alive test failed and forces
    the fw_down/fw_up cycle.
    Signed-off-by: default avatarShannon Nelson <shannon.nelson@amd.com>
    Acked-by: default avatarJakub Kicinski <kuba@kernel.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c2dbb090
core.h 3.09 KB