LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* libata regression 2.6.6-rc1 -> 2.6.6-rc2 located
@ 2004-05-29 16:49 Brad Campbell
  2004-05-29 16:59 ` Jeff Garzik
  0 siblings, 1 reply; 2+ messages in thread
From: Brad Campbell @ 2004-05-29 16:49 UTC (permalink / raw)
  To: linux-kernel, Jeff Garzik

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: libata regression 2.6.6-rc1 -> 2.6.6-rc2 located
  2004-05-29 16:49 libata regression 2.6.6-rc1 -> 2.6.6-rc2 located Brad Campbell
@ 2004-05-29 16:59 ` Jeff Garzik
  0 siblings, 0 replies; 2+ messages in thread
From: Jeff Garzik @ 2004-05-29 16:59 UTC (permalink / raw)
  To: Brad Campbell; +Cc: linux-kernel

Brad Campbell wrote:
> 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);
>  }

Great work, thanks.

Short term, I'll revert this patch.  The change was more of a 
"preparation for the future", and not strictly required.

I think I understand why, but I'll need to ponder a bit more on the long 
term solution.

	Jeff





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-05-29 16:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-29 16:49 libata regression 2.6.6-rc1 -> 2.6.6-rc2 located Brad Campbell
2004-05-29 16:59 ` Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).