From 4b633e1399c37e06f6f3ab660ac4924bc25ef2ff Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Mon, 7 Apr 2008 22:47:20 +0900 Subject: [PATCH] --- yaml --- r: 89271 b: refs/heads/master c: 305d2a1ab137d11d573319c315748a87060fe82d h: refs/heads/master i: 89269: a44a3fabd8759a2735ede0cac6d36993fd1c1d89 89267: e98ca899722551ec110a5be398a857b49f1ca10f 89263: 885462d11cac2964e19194915cb988bdbf91d58b v: v3 --- [refs] | 2 +- trunk/drivers/ata/ahci.c | 3 --- trunk/drivers/ata/libata-core.c | 1 - trunk/drivers/ata/libata-eh.c | 26 ++++++++------------------ trunk/drivers/ata/libata-sff.c | 1 - 5 files changed, 9 insertions(+), 24 deletions(-) diff --git a/[refs] b/[refs] index 82c604e7f44d..52573198c5de 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5958e3025fd9d97429163e074d9cfa3848f51f28 +refs/heads/master: 305d2a1ab137d11d573319c315748a87060fe82d diff --git a/trunk/drivers/ata/ahci.c b/trunk/drivers/ata/ahci.c index a69bcca4eb1b..3071a2341be3 100644 --- a/trunk/drivers/ata/ahci.c +++ b/trunk/drivers/ata/ahci.c @@ -1365,7 +1365,6 @@ static int ahci_hardreset(struct ata_link *link, unsigned int *class, ahci_start_engine(ap); - *class = ATA_DEV_NONE; if (online) *class = ahci_dev_classify(ap); @@ -1394,7 +1393,6 @@ static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class, /* vt8251 doesn't clear BSY on signature FIS reception, * request follow-up softreset. */ - *class = ATA_DEV_NONE; return online ? -EAGAIN : rc; } @@ -1439,7 +1437,6 @@ static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class, if (rc) ahci_kick_engine(ap, 0); } - *class = ATA_DEV_NONE; return rc; } diff --git a/trunk/drivers/ata/libata-core.c b/trunk/drivers/ata/libata-core.c index 2da579b46bdd..51876b93c1b7 100644 --- a/trunk/drivers/ata/libata-core.c +++ b/trunk/drivers/ata/libata-core.c @@ -3701,7 +3701,6 @@ int sata_std_hardreset(struct ata_link *link, unsigned int *class, /* do hardreset */ rc = sata_link_hardreset(link, timing, deadline, &online, NULL); - *class = ATA_DEV_NONE; return online ? -EAGAIN : rc; } diff --git a/trunk/drivers/ata/libata-eh.c b/trunk/drivers/ata/libata-eh.c index d8c4a45dcf26..4ec1397434c0 100644 --- a/trunk/drivers/ata/libata-eh.c +++ b/trunk/drivers/ata/libata-eh.c @@ -2055,20 +2055,10 @@ static int ata_do_reset(struct ata_link *link, ata_reset_fn_t reset, if (rc) return rc; - /* If any class isn't ATA_DEV_UNKNOWN, consider classification - * is complete and convert all ATA_DEV_UNKNOWN to - * ATA_DEV_NONE. - */ + /* convert all ATA_DEV_UNKNOWN to ATA_DEV_NONE */ ata_link_for_each_dev(dev, link) - if (classes[dev->devno] != ATA_DEV_UNKNOWN) - break; - - if (dev) { - ata_link_for_each_dev(dev, link) { - if (classes[dev->devno] == ATA_DEV_UNKNOWN) - classes[dev->devno] = ATA_DEV_NONE; - } - } + if (classes[dev->devno] == ATA_DEV_UNKNOWN) + classes[dev->devno] = ATA_DEV_NONE; return 0; } @@ -2079,15 +2069,15 @@ static int ata_eh_followup_srst_needed(struct ata_link *link, { if (link->flags & ATA_LFLAG_NO_SRST) return 0; - if (rc == -EAGAIN) - return 1; + if (rc == -EAGAIN) { + if (classify) + return 1; + rc = 0; + } if (rc != 0) return 0; if ((link->ap->flags & ATA_FLAG_PMP) && ata_is_host_link(link)) return 1; - if (classify && !(link->flags & ATA_LFLAG_ASSUME_CLASS) && - classes[0] == ATA_DEV_UNKNOWN) - return 1; return 0; } diff --git a/trunk/drivers/ata/libata-sff.c b/trunk/drivers/ata/libata-sff.c index f464ca1fa261..5be8a6058dac 100644 --- a/trunk/drivers/ata/libata-sff.c +++ b/trunk/drivers/ata/libata-sff.c @@ -1929,7 +1929,6 @@ int sata_sff_hardreset(struct ata_link *link, unsigned int *class, rc = sata_link_hardreset(link, timing, deadline, &online, ata_sff_check_ready); - *class = ATA_DEV_NONE; if (online) *class = ata_sff_dev_classify(link->device, 1, NULL);