From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Tolpin Message-Id: <200403031219.i23CJtpW099327@adat.davidashen.net> To: 9fans@cse.psu.edu Subject: Re: [9fans] i/o error: wrenwrite In-Reply-To: <9bd008d2b84df83f80ad7c7c35867818@terzarima.net> Content-Type: text/plain; charset=KOI8-R Date: Wed, 3 Mar 2004 16:19:55 +0400 Topicbox-Message-UUID: 101db0b0-eacd-11e9-9e20-41e7f4b1d025 > > round about here, say: > if(status & Err) > drive->error = inb(cmdport+Error); > > i suspect the error might happen much earlier, before it gets to > generate an interrupt, but that should become apparent if you > see no error output from that point. just a print() of the status > might do. i suspect the controller ends up in a state where its > registers don't look right to the driver, or indeed where the > controller needs a bit of a whack from the driver after the power cycling, > in which case it probably can't generate IO at all and it's (perhaps) 1) I have added print("status=%d\n",status) which during normal boot displays status=81 occasionally. During wrenwrite loop the point is not reached. 2) I then added a call to print("atainterrupt\n") at the top of atainterrupt(). The result has been that the computer boots with this kernel (after a few minutes of course) and does not with kernel without that 'brake'. Does it mean it is something about timeouts? I'll continute investigating.