Re: 2.5.75 does not boot - TCQ oops

Jens Axboe (axboe@suse.de)
Fri, 11 Jul 2003 10:34:37 +0200


On Fri, Jul 11 2003, Jens Axboe wrote:
> On Fri, Jul 11 2003, Jens Axboe wrote:
> > On Thu, Jul 10 2003, Ivan Gyurdiev wrote:
> > > See,
> > >
> > > http://www.ussg.iu.edu/hypermail/linux/kernel/0307.0/0515.html
> > >
> > > where the bug is described for 2.5.74.
> > > I got no replies, and the bug persists in 2.5.75 (+bk patches).
> > >
> > > Note:
> > > The machine boots with TASKFILE on, TCQ is causing the problem.
> >
> > Looks like IDE using the queue before it has been setup, probably Bart
> > broke it when he moved the TCQ init around. I'll take a look.
>
> Here's the fix. Bart, you moved the tcq init to a much earlier fase
> (saying ide_init_drive() was too early, well ide_dma_on is much earlier
> in the init fase). ide_init_drive() _is_ the correct location in my
> oppinion, drive and queue has been set up at this point.

Better still (and later in the probe) is this version. This is in my
oppinion the correct place to init tcq, and also contains it to ide-disk
where it should be.

--- drivers/ide/ide-dma.c~ 2003-07-11 10:21:04.492561920 +0200
+++ drivers/ide/ide-dma.c 2003-07-11 10:25:28.183474808 +0200
@@ -572,10 +572,6 @@
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;
}

--- drivers/ide/ide-disk.c~ 2003-07-11 10:30:51.783280160 +0200
+++ drivers/ide/ide-disk.c 2003-07-11 10:31:09.873530024 +0200
@@ -1665,6 +1665,10 @@
drive->no_io_32bit = id->dword_io ? 1 : 0;
if (drive->id->cfs_enable_2 & 0x3000)
write_cache(drive, (id->cfs_enable_2 & 0x3000));
+
+#ifdef CONFIG_BLK_DEV_IDE_TCQ_DEFAULT
+ HWIF(drive)->ide_dma_queued_on(drive);
+#endif
}

static int idedisk_cleanup (ide_drive_t *drive)

-- 
Jens Axboe

- 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/