This one fixes lockup, but I'm not actually sure that it is better
than before, as both channels are downgraded to the PIO:
... CRC error stuff ...
PDC202XX: Secondary channel reset
PDC202XX: Primary channel reset
ide3: reset: master: error (0x00?)
... USB stuff & so on, before mounting root ...
... repeat 4 times:
hde: dma_timer_expiry: dma status = 0x21
hde: timeout waiting for DMA
PDC202XX: Primary channel reset
PDC202XX: Secondary channel reset
hde: timeout waiting for DMA
... end of repeat
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 292k freed
init-2.04#
It looks like that hde resurrecting did not cause any damage to the
filesystems (and obviously hde is completely innocent udma100 citizen;
hdg is the only one which should be turned to udma2 or pio).
And strange thing, once I was lucky enough to read partition table from
hdg, so I could run atapci, and it reports that hde host interface is setup
for UDMA4, while hdg for UDMA2. So host hardware is actually probably set
ok, it is just "hdg: 234441648 sectors (120034 MB) w/2048KiB Cache,
CHS=232581/16/63, UDMA(100)" which contains wrong value, and hdg itself,
which says that udma5 is selected (and does not work).
Petr Vandrovec
vandrove@vc.cvut.cz
--- linux-2.5.65-c1197.dist/drivers/ide/ide-iops.c 2003-03-22 15:29:16.000000000 +0100
+++ linux-2.5.65-c1197/drivers/ide/ide-iops.c 2003-03-23 04:26:14.000000000 +0100
@@ -902,7 +902,7 @@
/*
* Select the drive, and issue the SETFEATURES command
*/
- disable_irq(hwif->irq); /* disable_irq_nosync ?? */
+ disable_irq_nosync(hwif->irq);
udelay(1);
SELECT_DRIVE(drive);
SELECT_MASK(drive, 0);
-
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/