Gregor Jasny wrote:
> 2007/6/2, Jeff Garzik <[email protected]>:
>> Does this patch change the behavior at all?
>
> No. It still times out. I've raised the first timeout to 60 seconds
> but still no luck.
Let's see where we're failing. Please apply the attached patch and
report what kernel says.
Thanks.
--
tejun
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 4733f00..ae6f177 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -3053,8 +3053,11 @@ static int ata_bus_post_reset(struct ata_port *ap, unsigned int devmask,
if (dev0) {
rc = ata_wait_ready(ap, deadline);
if (rc) {
- if (rc != -ENODEV)
+ if (rc != -ENODEV) {
+ ata_port_printk(ap, KERN_WARNING,
+ "ata_bus_post_reset: EXIT0\n");
return rc;
+ }
ret = rc;
}
}
@@ -3070,15 +3073,21 @@ static int ata_bus_post_reset(struct ata_port *ap, unsigned int devmask,
lbal = ioread8(ioaddr->lbal_addr);
if ((nsect == 1) && (lbal == 1))
break;
- if (time_after(jiffies, deadline))
+ if (time_after(jiffies, deadline)) {
+ ata_port_printk(ap, KERN_WARNING,
+ "ata_bus_post_reset: EXIT1\n");
return -EBUSY;
+ }
msleep(50); /* give drive a breather */
}
if (dev1) {
rc = ata_wait_ready(ap, deadline);
if (rc) {
- if (rc != -ENODEV)
+ if (rc != -ENODEV) {
+ ata_port_printk(ap, KERN_WARNING,
+ "ata_bus_post_reset: EXIT2\n");
return rc;
+ }
ret = rc;
}
}
@@ -3090,6 +3099,7 @@ static int ata_bus_post_reset(struct ata_port *ap, unsigned int devmask,
if (dev0)
ap->ops->dev_select(ap, 0);
+ ata_port_printk(ap, KERN_WARNING, "ata_bus_post_reset: EXIT3\n");
return ret;
}
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]