From: Jens Axboe Here's the fix. Bart, you moved the tcq init to a much earlier phase (saying ide_init_drive() was too early, well ide_dma_on is much earlier in the init phase). ide_init_drive() _is_ the correct location in my oppinion, drive and queue has been set up at this point. drivers/ide/ide-dma.c | 4 ---- drivers/ide/ide-probe.c | 0 2 files changed, 4 deletions(-) diff -puN drivers/ide/ide-dma.c~ide-tcq-fix drivers/ide/ide-dma.c --- 25/drivers/ide/ide-dma.c~ide-tcq-fix 2003-07-11 02:10:11.000000000 -0700 +++ 25-akpm/drivers/ide/ide-dma.c 2003-07-11 02:10:11.000000000 -0700 @@ -572,10 +572,6 @@ int __ide_dma_on (ide_drive_t *drive) if (HWIF(drive)->ide_dma_host_on(drive)) return 1; -#ifdef CONFIG_BLK_DEV_IDE_TCQ_DEFAULT - HWIF(drive)->ide_dma_queued_on(drive); -#endif - return 0; } diff -puN drivers/ide/ide-probe.c~ide-tcq-fix drivers/ide/ide-probe.c _