summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/9/pc/sdiahci.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/src/9/pc/sdiahci.c b/sys/src/9/pc/sdiahci.c
index 358c71da8..7a2c5a5d9 100644
--- a/sys/src/9/pc/sdiahci.c
+++ b/sys/src/9/pc/sdiahci.c
@@ -908,6 +908,7 @@ configdrive(Drive *d)
ilock(d);
switch(d->port->sstatus & Smask){
+ default:
case Smissing:
d->state = Dmissing;
break;
@@ -1497,7 +1498,7 @@ iaonline(SDunit *u)
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]);
@@ -2137,6 +2138,9 @@ iapnp(void)
return nil;
done = 1;
+ if(getconf("*noahci") != nil)
+ return nil;
+
if(getconf("*ahcidebug") != nil){
debug = 1;
datapi = 1;