ref: 5c4f2f9d35f5c55372b0e1fc32d1a55c605edb4f
parent: 3a79bf2ae6f780e605dfbc9ee213136aedff6673
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Sat Feb 23 09:05:51 EST 2013
sdiahci: only wait for drives that are in the process of becoming ready when onlining, add *noahci option
--- a/sys/src/9/pc/sdiahci.c
+++ b/sys/src/9/pc/sdiahci.c
@@ -908,6 +908,7 @@
ilock(d);
switch(d->port->sstatus & Smask){+ default:
case Smissing:
d->state = Dmissing;
break;
@@ -1497,7 +1498,7 @@
c = u->dev->ctlr;
d = c->drive[u->subno];
- while(waitready(d) == 1)
+ while(d->state != Dmissing && waitready(d) == 1)
esleep(1);
dprint("%s: iaonline: %s\n", dnam(d), diskstates[d->state]);@@ -2136,6 +2137,9 @@
if(done)
return nil;
done = 1;
+
+ if(getconf("*noahci") != nil)+ return nil;
if(getconf("*ahcidebug") != nil){debug = 1;
--
⑨