• Ben Hutchings's avatar
    sfc: Make handling of MC reboot more reliable · 3f713bf4
    Ben Hutchings authored
    When the MC reboots, either as part of a firmware upgrade or due to a
    bug, it attempts to complete (with an error) any requests that were
    outstanding before the reboot.  Since there is an inherent race
    condition in checking this, it will also write to a status word in
    shared memory.
    
    If we look at each of these separately, we may detect each reboot
    twice, resulting in a spurious command failure after a firmware
    upgrade or frustrating recovery from a firmware bug.  Instead, if a
    request completion indicates a reboot, we must poll and clear the
    status word.
    
    This bug was previously masked by use of an incorrect address for the
    status word.  Fix that, using the definition now included in
    mcdi_pcol.h.
    Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
    3f713bf4
mcdi.c 31.6 KB