• James Bottomley's avatar
    [PATCH] sd.c spinup code can go into a wild loop · 9b4a996f
    James Bottomley authored
    This problem was reported against 2.4 by Eddie.Williams@SteelEye.com
    
    There's a problem in the sd spinup code in that if the unit returns NOT
    READY, we begin to spin it up, but thereafter if it returns anything
    other than NOT READY or success, the while loop in the spinup code will
    be executed *without* the 1s delay that's in the NOT READY case.
    
    The problem was seen with a real device: Compaq multi-path storage
    arrays return NOT READY to probes down inactive paths, but when the
    start unit is sent to activate the path, they can then respond back with
    error conditions.
    
    The fix is to terminate the while loop for any unexpected return.
    9b4a996f
sd.c 42.2 KB