summaryrefslogtreecommitdiff
path: root/sys/dev/amr/amr.c
diff options
context:
space:
mode:
authorMike Smith <msmith@FreeBSD.org>2000-03-23 18:33:19 +0000
committerMike Smith <msmith@FreeBSD.org>2000-03-23 18:33:19 +0000
commit9992d96f25e7ed4a3ab8c2d391732081179a15cf (patch)
treea6d3ba31d9da4d0339809a3a85ced1f6308e3730 /sys/dev/amr/amr.c
parent9ed4e87cad6ce8f1e8faf39636d7580bbc769fbd (diff)
Notes
Diffstat (limited to 'sys/dev/amr/amr.c')
-rw-r--r--sys/dev/amr/amr.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/amr/amr.c b/sys/dev/amr/amr.c
index 6d7524dc3679..3145e082e958 100644
--- a/sys/dev/amr/amr.c
+++ b/sys/dev/amr/amr.c
@@ -1126,7 +1126,7 @@ amr_start(struct amr_command *ac)
/* spin waiting for the mailbox */
debug("wait for mailbox");
- for (i = 100000, done = 0, worked = 0; (i > 0) && !done; i--) {
+ for (i = 10000, done = 0, worked = 0; (i > 0) && !done; i--) {
s = splbio();
/* is the mailbox free? */
@@ -1142,7 +1142,12 @@ amr_start(struct amr_command *ac)
/* not free, try to clean up while we wait */
} else {
debug("busy flag %x\n", sc->amr_mailbox->mb_busy);
- worked = amr_done(sc);
+ /* try to kill some time being useful */
+ if (amr_done(sc)) {
+ worked = 1;
+ } else {
+ DELAY(100);
+ }
}
splx(s);
}