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/