Re: [PATCH] updated version of Jens' SATA suspend-to-ram patch
From: Jeff Garzik
Date: Fri Sep 23 2005 - 15:48:20 EST
Jens Axboe wrote:
On Fri, Sep 23 2005, Joshua Kwan wrote:
I had some time yesterday and decided to help Jens out by rediffing the
now-infamous SATA suspend-to-ram patch [1] against current git and
test-building it.
Very strange. I cannot find this patch at all in my email folders.
Can someone resend it to me?
--- linux-2.6.13/drivers/scsi/libata-core.c~ 2005-09-01 12:22:19.000000000 +0200
+++ linux-2.6.13/drivers/scsi/libata-core.c 2005-09-01 12:24:38.000000000 +0200
@@ -3738,8 +3738,8 @@
unsigned long flags;
int rc;
- qc = ata_qc_new_init(ap, dev);
- BUG_ON(qc == NULL);
+ while ((qc = ata_qc_new_init(ap, dev)) == NULL)
+ msleep(10);
qc->tf.command = cmd;
qc->tf.flags |= ATA_TFLAG_DEVICE;
Worried now!
If this patch is needed, something VERY VERY WRONG is going on. This
patch indicates that the queueing state machine has been violated, and
something is trying to IGNORE the command synchronization :(
Further, you cannot always assume that msleep() is valid in that
context. It should be the caller that waits (libata suspend code), not
ata_do_simple_cmd() itself.
Does anyone have a link to James Bottomley's proposed patch? That one
seemed to do what was necessary -- send a SYNCHRONIZE_CACHE command then
turn it over to the LLD for further suspend.
Linus wrote:
Ok. Can we have this in -mm for a few days just to shake out anything
interesting, and then merge it into mainline?
Once we get a decent patch, I can merge it into my libata-dev.git
repository, which is automatically propagated to -mm.
Jeff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/