libata regression 2.6.6-rc1 -> 2.6.6-rc2 located
From: Brad Campbell
Date: Sat May 29 2004 - 11:51:06 EST
I managed to narrow it down to a diff between 2.6.6-rc1 and 2.6.6-rc2
2.6.6-rc1 works fine and 2.6.6-rc2 exhibits the lockup on the third card.
Reverting this hunk makes everything happy again.
I also tested this against 2.6.7-rc1-bk4 and it solves the problem.
I don't pretend to understand why, just did the donkey testing to locate it.
diff -urN linux-2.6.5-a/drivers/scsi/sata_promise.c linux-2.6.5-b/drivers/scsi/sata_promise.c
--- linux-2.6.5-a/drivers/scsi/sata_promise.c 2004-05-29 19:53:40.000000000 +0400
+++ linux-2.6.5-b/drivers/scsi/sata_promise.c 2004-05-29 19:41:47.000000000 +0400
@@ -1180,14 +1180,14 @@
static void pdc_tf_load_mmio(struct ata_port *ap, struct ata_taskfile *tf)
{
- if (tf->protocol != ATA_PROT_DMA)
+ if (tf->protocol == ATA_PROT_PIO)
ata_tf_load_mmio(ap, tf);
}
static void pdc_exec_command_mmio(struct ata_port *ap, struct ata_taskfile *tf)
{
- if (tf->protocol != ATA_PROT_DMA)
+ if (tf->protocol == ATA_PROT_PIO)
ata_exec_command_mmio(ap, tf);
}
Hope this helps shed some light.. Still don't understand why it works perfectly with only 2 cards
however.
Regards,
Brad
-
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/