From: Chris Wright Date: Wed, 31 May 2006 22:01:58 +0000 (-0700) Subject: Add libata resume fix, fwd from Marcel Holtmann X-Git-Tag: v2.6.16.20~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=07eba7aa5421c88fcb78b3e43b979c60a693a7f3;p=thirdparty%2Fkernel%2Fstable-queue.git Add libata resume fix, fwd from Marcel Holtmann --- diff --git a/queue-2.6.16/series b/queue-2.6.16/series index 4b5280a918f..2487163fda6 100644 --- a/queue-2.6.16/series +++ b/queue-2.6.16/series @@ -4,3 +4,4 @@ cpuset-might-sleep-checking-zones-allowed-fix.patch powermac-force-only-suspend-to-disk-to-be-valid.patch input-psmouse-fix-new-device-detection-logic.patch ohci1394-sbp2-fix-scsi_add_device-failed-with-pl-3507-based-devices.patch +the-latest-consensus-libata-resume-fix.patch diff --git a/queue-2.6.16/the-latest-consensus-libata-resume-fix.patch b/queue-2.6.16/the-latest-consensus-libata-resume-fix.patch new file mode 100644 index 00000000000..1421a14925c --- /dev/null +++ b/queue-2.6.16/the-latest-consensus-libata-resume-fix.patch @@ -0,0 +1,32 @@ +From nobody Mon Sep 17 00:00:00 2001 +From: Mark Lord +Date: Sun, 28 May 2006 11:28:00 -0400 +Subject: [PATCH] the latest consensus libata resume fix + +Okay, just to sum things up. + +This forces libata to wait for up to 2 seconds for BUSY|DRQ to clear +on resume before continuing. + +[jgarzik adds...] During testing we never saw DRQ asserted, but +nonetheless (a) this works and (b) testing for DRQ won't hurt. + +Signed-off-by: Mark Lord +Acked-by: Jens Axboe +Signed-off-by: Jeff Garzik +Signed-off-by: Chris Wright +--- + + drivers/scsi/libata-core.c | 1 + + 1 file changed, 1 insertion(+) + +--- linux-2.6.16.19.orig/drivers/scsi/libata-core.c ++++ linux-2.6.16.19/drivers/scsi/libata-core.c +@@ -4293,6 +4293,7 @@ static int ata_start_drive(struct ata_po + int ata_device_resume(struct ata_port *ap, struct ata_device *dev) + { + if (ap->flags & ATA_FLAG_SUSPENDED) { ++ ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 200000); + ap->flags &= ~ATA_FLAG_SUSPENDED; + ata_set_mode(ap); + }