• Tejun Heo's avatar
    libata: always do follow-up SRST if hardreset returned -EAGAIN · dd5d2d84
    Tejun Heo authored
    commit 5dbfc9cb upstream
    
    As an optimization, follow-up SRST used to be skipped if
    classification wasn't requested even when hardreset requested it via
    -EAGAIN.  However, some hardresets can't wait for device readiness and
    skipping SRST can cause timeout or other failures during revalidation.
    Always perform follow-up SRST if hardreset returns -EAGAIN.  This
    makes reset paths more predictable and thus less error-prone.
    
    While at it, move hardreset error checking such that it's done right
    after hardreset is finished.  This simplifies followup SRST condition
    check a bit and makes the reset path easier to modify.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    Cc: Chuck Ebbert <cebbert@redhat.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    dd5d2d84
libata-eh.c 73.7 KB