Re: Linux 2.6.3-rc3 - missing IDE hunk from bk4; good or bad?

From: Chip Salzenberg
Date: Sun Feb 15 2004 - 10:30:16 EST


Linus writes:
>More merges, although most of them are architecture updates. IA64,
>ppc32/64, SuperH and ARM.

One non-arch difference between rc3 and bk4 seems to involve IDE DMA.
When I ran briefly ran bk4 I got a few IDE DMA errors (ThinkPad A30,
TOSHIBA MK8025GAS). Makes one wonder. Thus:

Is the IDE patch in bk4 (that's missing from rc3) going to be in
2.6.3? Does it only come into play with SCSI, as it seems to, or
does it affect a non-SCSI setup?

Here's the diff between bk4 and rc3:

diff -ru2 linux-2.6.3rc2bk4/drivers/scsi/libata-core.c linux-2.6.3rc3/drivers/scsi/libata-core.c
--- linux-2.6.3rc2bk4/drivers/scsi/libata-core.c 2004-02-14 23:40:19.000000000 -0500
+++ linux-2.6.3rc3/drivers/scsi/libata-core.c 2004-02-15 01:51:34.000000000 -0500
@@ -2387,39 +2387,4 @@

/**
- * ata_chk_spurious_int - Check for spurious interrupts
- * @ap: port to which command is being issued
- *
- * Examines the DMA status registers and clears
- * unexpected interrupts. Created to work around
- * hardware bug on Intel ICH5, but is applied to all
- * chipsets using the standard irq handler, just for safety.
- * If the bug is not present, this is simply a single
- * PIO or MMIO read addition to the irq handler.
- *
- * LOCKING:
- */
-static inline void ata_chk_spurious_int(struct ata_port *ap) {
- int host_stat;
-
- if (ap->flags & ATA_FLAG_MMIO) {
- void *mmio = (void *) ap->ioaddr.bmdma_addr;
- host_stat = readb(mmio + ATA_DMA_STATUS);
- } else
- host_stat = inb(ap->ioaddr.bmdma_addr + ATA_DMA_STATUS);
-
- if ((host_stat & (ATA_DMA_INTR | ATA_DMA_ERR | ATA_DMA_ACTIVE)) == ATA_DMA_INTR) {
- if (ap->flags & ATA_FLAG_MMIO) {
- void *mmio = (void *) ap->ioaddr.bmdma_addr;
- writeb(host_stat & ~ATA_DMA_ERR, mmio + ATA_DMA_STATUS);
- } else
- outb(host_stat & ~ATA_DMA_ERR, ap->ioaddr.bmdma_addr + ATA_DMA_STATUS);
-
- DPRINTK("ata%u: Caught spurious interrupt, status 0x%X\n", ap->id, host_stat);
- udelay(1);
- }
-}
-
-
-/**
* ata_interrupt -
* @irq:
@@ -2453,5 +2418,4 @@
if (qc && ((qc->flags & ATA_QCFLAG_POLL) == 0))
handled += ata_host_intr(ap, qc);
- ata_chk_spurious_int(ap);
}
}



--
Chip Salzenberg - a.k.a. - <chip@xxxxxxxxx>
"I wanted to play hopscotch with the impenetrable mystery of existence,
but he stepped in a wormhole and had to go in early." // MST3K
-
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/