diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-03-19 17:59:44 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-03-19 17:59:44 -0400 |
commit | c7c350e92aab1bba68f26a6027b734adcf9824ba (patch) | |
tree | aa99bd94c3049dd871d9c030d70a5f3d87591a95 /drivers/ata/libata-eh.c | |
parent | 2f42b5d043ee271d1e5d30ecd77186b6c4d4e534 (diff) | |
parent | f8512ad0da16cbe156f3a7627971cdf0b39c4138 (diff) | |
download | linux-c7c350e92aab1bba68f26a6027b734adcf9824ba.tar.bz2 |
Merge branch 'hotfixes' into devel
Diffstat (limited to 'drivers/ata/libata-eh.c')
-rw-r--r-- | drivers/ata/libata-eh.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 698ce2cea52c..681252fd8143 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c @@ -2150,6 +2150,15 @@ int ata_eh_reset(struct ata_link *link, int classify, ap->ops->set_piomode(ap, dev); } + if (!softreset && !hardreset) { + if (verbose) + ata_link_printk(link, KERN_INFO, "no reset method " + "available, skipping reset\n"); + if (!(lflags & ATA_LFLAG_ASSUME_CLASS)) + lflags |= ATA_LFLAG_ASSUME_ATA; + goto done; + } + /* Determine which reset to use and record in ehc->i.action. * prereset() may examine and modify it. */ @@ -2254,6 +2263,7 @@ int ata_eh_reset(struct ata_link *link, int classify, lflags |= ATA_LFLAG_ASSUME_ATA; } + done: ata_link_for_each_dev(dev, link) { /* After the reset, the device state is PIO 0 and the * controller state is undefined. Reset also wakes up |