Subject: Re: how to crash a diskless client (i386)
To: None <kurt.schreiner@uni-mainz.de>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: current-users
Date: 05/10/1999 21:52:10
On Mon, May 10, 1999 at 10:21:39AM +0200, ks@ub.uni-mainz.de wrote:
> [...]
> kernel: protection fault trap, code=0
> Stopped in dd at   _wdc_ata_bio_intr+0x372:	repne insl	%dx,%es:(%edi)
> db>
> 

This is in bus_space_read_multi_4() I guess (it's inline, so doesn't appear
in the stack trace).
Do you get this immediatly after starting the command, or at random ?
Do you always get this same panic, at the same place 
(_wdc_ata_bio_intr+0x372) ?

i386 experts: what does "protection fault trap" mean ? Is it because
the port couldn't be read, or because the memory couldn't be written ?

I suspect the 32bit I/O here, could you try to recompile a kernel with the
following patch: 

--- wdc_isa.c.orig	Mon May 10 21:50:49 1999
+++ wdc_isa.c	Mon May 10 21:51:01 1999
@@ -150,7 +150,7 @@
 		sc->sc_wdcdev.dma_finish = wdc_isa_dma_finish;
 		wdc_isa_dma_setup(sc);
 	}
-	sc->sc_wdcdev.cap |= WDC_CAPABILITY_DATA16 | WDC_CAPABILITY_DATA32 |
+	sc->sc_wdcdev.cap |= WDC_CAPABILITY_DATA16 | 
 	    WDC_CAPABILITY_PREATA;
 	sc->sc_wdcdev.PIO_cap = 0;
 	sc->wdc_chanptr = &sc->wdc_channel;

--
Manuel Bouyer <bouyer@antioche.eu.org>
--