Messages in this thread | | | Subject | Re: 2.4.21-pre4: PDC ide driver problems with shared interrupts | From | Benjamin Herrenschmidt <> | Date | 05 Feb 2003 18:34:55 +0100 |
| |
On Wed, 2003-02-05 at 18:19, Ross Biro wrote: > Benjamin Herrenschmidt wrote: > > >While I agree with you here, I don't think it's what's happening. > > /* clear INTR & ERROR flags */ > > hwif->OUTB(dma_stat|6, hwif->dma_status); > > > > > > > You have way to much faith in the hardware. Promise is especially known > for not keeping to the spec. I wouldn't trust the interrupt bit to be > valid unless a dma is actually active, i.e. that > > hwif->OUTB(hwif->INB(dma_base)|1, dma_base); > > has actually been written. > > I've actually had a manufacturer tell me that they don't worry about the > spec, just making things work with Windows.
Ok, so that gives us 2 possibilities. The above problem, which would be fixed by locking all around ide_dma_read/write (or rather in the _caller_, seems better so we don't have to drop the lock for ATAPI).
And a possible wraparound of waiting_for_dma if 255 IRQs come in from whatever device we share the IRQ line with.
I beleive both need fixing...
Ben.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |