• Tejun Heo's avatar
    libata-link: update EH to deal with PMP links · 9b1e2658
    Tejun Heo authored
    Update ata_eh_autopsy(), ata_eh_report(),
    ata_eh_revalidate_and_attach() and ata_eh_recover() to deal with PMP
    links.  ata_eh_autopsy() and ata_eh_report() updates are
    straightforward.  They just repeat the same operation over all
    configured links.  The only change to ata_eh_revalidate_and_attach()
    is avoiding calling ->cable_select() on non-host ports.
    
    ata_eh_recover() update is more complex as it first processes all
    resets and then performs the rest.  This is necessary as thawing with
    some links in unknown state can be dangerous.  ehi->action is cleared
    on successful recovery of a link to avoid repeating recovery due to
    failures in other links.
    
    ata_eh_recover() iterates over only PMP links if PMP is attached, and,
    on failure, the failing link is returned in @failed_link instead of
    disabling devices directly.  These are to integrate ata_eh_recover()
    into PMP EH later.
    Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    9b1e2658
libata-eh.c 61.4 KB