--- ide-dma.orig.c 2002-10-18 12:25:08.000000000 -0500 +++ ide-dma.c 2002-10-18 12:23:55.000000000 -0500 @@ -905,7 +905,12 @@ request_region(base+16, hwif->cds->extra, hwif->cds->name); hwif->dma_extra = hwif->cds->extra; } - hwif->dma_master = (hwif->channel) ? hwif->mate->dma_base : base; + if(hwif->channel && hwif->mate == NULL) { + hwif->dma_master = base; + } + else { + hwif->dma_master = (hwif->channel) ? hwif->mate->dma_base : base; + } if (hwif->dma_base2) { if (!check_mem_region(hwif->dma_base2, ports)) request_mem_region(hwif->dma_base2, ports, hwif->name); @@ -926,7 +931,12 @@ request_region(base+16, hwif->cds->extra, hwif->cds->name); hwif->dma_extra = hwif->cds->extra; } - hwif->dma_master = (hwif->channel) ? hwif->mate->dma_base : base; + if(hwif->mate == NULL && hwif->channel) { + hwif->dma_master = base; + } + else { + hwif->dma_master = (hwif->channel) ? hwif->mate->dma_base : base; + } if (hwif->dma_base2) { if (!request_region(hwif->dma_base2, ports, hwif->name))