Re: [PATCH] Re: 2.6.17-rc5-git1: regression: resume from suspend(RAM) fails: libata issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Linus Torvalds wrote:
On Sat, 27 May 2006, Mark Lord wrote:
So, just the "status1 = ata_chk_status(ap);" seems to be enough
to make it work for you, in place of the earlier 500msec delay we started
with?

Not possible, since the "ata_busy_wait()" already did at least _one_

	udelay(10);
	status = ata_chk_status(ap);

as part of the busy wait. So it's not just a single ata_chk_status() that matters for Jens, it's a couple. And apparently waiting for DRDY actually
works for him.
...
If I've understood correctly, this patch (with no additional timeouts or anything else) should work for both Mark and Jens, and not make Jeff's case noticeably worse either. And I'm certainly fine with it.
..
 int ata_device_resume(struct ata_port *ap, struct ata_device *dev)
 {
+	/*
+	 * Wait for BUSY to go away for up to 2 seconds,
+	 * and then try to wait for idle (up to 1 msec)
+	 */
+	ata_busy_wait(ap, ATA_BUSY, 200000);
+	ata_wait_idle(ap);
+	
 	if (ap->flags & ATA_FLAG_SUSPENDED) {
 		ap->flags &= ~ATA_FLAG_SUSPENDED;
 		ata_set_mode(ap);
..

It works for me.  But I really think we need to hear from Jens,
as his machine seems the more finicky.  As you pointed out,
his works only with a small delay in front of the previous patches,
and that small delay may still be needed here..

If Zhao is still "on the line", perhaps he could also comment
for his own setup, though the above patch should certainly work
(the original patch from me was really a quick backport of his patch).

Cheers
-
: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux