From 43a7da6bdfe78870b0bf38a19fd74cc2ac108e07 Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Thu, 6 Mar 2008 13:09:34 +0900 Subject: [PATCH] --- yaml --- r: 87151 b: refs/heads/master c: eec59f76e9010e22d5736cf1907af4a92067522e h: refs/heads/master i: 87149: c74c94666f290affb3ad17528f0a8c78ff34d7cc 87147: 805072256b40ee71080ccd7a6fc833bbcab2af96 87143: c6d6d24756f1437c74a8103dd2a831ae8f64c42d 87135: 9bf33bc47a5d4712fae0d5a037070f29f42c02b1 v: v3 --- [refs] | 2 +- trunk/drivers/ata/libata-eh.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 244ca237efc3..39058af81369 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7f5e4e8d94b6013f93716bc42a1296f95d1059dc +refs/heads/master: eec59f76e9010e22d5736cf1907af4a92067522e diff --git a/trunk/drivers/ata/libata-eh.c b/trunk/drivers/ata/libata-eh.c index 698ce2cea52c..681252fd8143 100644 --- a/trunk/drivers/ata/libata-eh.c +++ b/trunk/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