X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Fata%2Fsata_nv.c;h=858f70610edaa8370a6b79b2367147cf3d69dba9;hb=2486fa561a3192bbbec39c7feef87a1e07bd6342;hp=109b07495721ebf684710d50949f00db78e63f8d;hpb=ce1d5b23a8d1e19866ab82bdec0dc41fde5273d8;p=~andy%2Flinux diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c index 109b0749572..858f70610ed 100644 --- a/drivers/ata/sata_nv.c +++ b/drivers/ata/sata_nv.c @@ -1591,13 +1591,16 @@ static void nv_mcp55_thaw(struct ata_port *ap) static int nv_hardreset(struct ata_link *link, unsigned int *class, unsigned long deadline) { - unsigned int dummy; + int rc; /* SATA hardreset fails to retrieve proper device signature on - * some controllers. Don't classify on hardreset. For more - * info, see http://bugzilla.kernel.org/show_bug.cgi?id=3352 + * some controllers. Request follow up SRST. For more info, + * see http://bugzilla.kernel.org/show_bug.cgi?id=3352 */ - return sata_sff_hardreset(link, &dummy, deadline); + rc = sata_sff_hardreset(link, class, deadline); + if (rc) + return rc; + return -EAGAIN; } static void nv_adma_error_handler(struct ata_port *ap)