Linux-2.5.42 introduced a new IDE driver function
HWIF(drive)->ide_dma_queued_on(). It appears that if the device does
not do DMA at all, ide_dma_queued_on will be set to NULL. I guess that
is intentional, as that other code in drivers/ide actually checks
for the possibility that ide_dma_queue_on may be null.
Anyhow, when I booted 2.5.42, I got a null pointer dereference,
and I think it was because the system that I booted had an ATAPI CDROM
drive and I think my chip set and drive combination does not do DMA for
ATAPI devices.
Anyhow, the following patch made the problem go away, although
I'm not that confident of the correctness of the fix. For what it's worth,
I am composing this email on the system running the changed code.
--
Adam J. Richter __ ______________ 575 Oroville Road
[email protected] \ / Milpitas, California 95035
+1 408 309-6081 | g g d r a s i l United States of America
"Free Software For The Rest Of Us."