Hello ! Here is a small change to sgiwd93_dma_map in sgiwd93.c. This additional line makes a big difference, when compiling the kernel on the IP28 (as there is no compiler support yet). It intercepts all scsi input buffers (instead of the few unaligned ones, for which this double buffering originally was intended), redirecting dma input to a save place. Without this line, almost always, halfway through the build an error message showed up, complaining about a corrupted source file. This "defect" was (you guessed it ;-) not on disk, but only in the in-memory file buffers, it disappeared, at least, when the machine was rebooted. By intercepting all input buffers, it is now possible to repeatedly build a working kernel without fuss. Of course this overhead slows down the machine a bit (as will do the compiler generated cache barriers), but at the end of the day a stable machine is faster than one, that often crashes ;-) --- sgiwd93.c Mon Aug 9 13:40:37 2004 +++ sgiwd93.c Mon Aug 9 13:40:37 2004 @@ -394,6 +394,7 @@ hdata->hd.rb.len = 0; if (hdata->wh.dma_dir) { if (CACHLIGNUP(len) != len || +len <= sizeof(*hdata->hd.buf) || /* while there's no gcc support, intercept all input buffers */ CACHLIGNDN((unsigned)addr) != (unsigned)addr) { hdata->hd.rb.len = len; len = CACHLIGNUP(len); with kind regards pf