diff options
-rw-r--r-- | sys/dev/isa/aha.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/dev/isa/aha.c b/sys/dev/isa/aha.c index d089147b532..bfd252bce3d 100644 --- a/sys/dev/isa/aha.c +++ b/sys/dev/isa/aha.c @@ -1,4 +1,4 @@ -/* $OpenBSD: aha.c,v 1.36 2000/11/13 13:43:01 niklas Exp $ */ +/* $OpenBSD: aha.c,v 1.37 2001/01/29 06:40:14 mickey Exp $ */ /* $NetBSD: aha.c,v 1.11 1996/05/12 23:51:23 mycroft Exp $ */ #undef AHADIAG @@ -59,6 +59,7 @@ #include <sys/buf.h> #include <sys/proc.h> #include <sys/user.h> +#include <sys/timeout.h> #include <machine/intr.h> #include <machine/pio.h> @@ -486,7 +487,7 @@ AGAIN: goto next; } - untimeout(aha_timeout, ccb); + timeout_del(&ccb->xs->stimeout); isadma_copyfrombuf((caddr_t)ccb, CCB_PHYS_SIZE, 1, ccb->ccb_phys); aha_done(sc, ccb); @@ -783,8 +784,10 @@ aha_start_ccbs(sc) /* Tell the card to poll immediately. */ outb(iobase + AHA_CMD_PORT, AHA_START_SCSI); - if ((ccb->xs->flags & SCSI_POLL) == 0) - timeout(aha_timeout, ccb, (ccb->timeout * hz) / 1000); + if ((ccb->xs->flags & SCSI_POLL) == 0) { + timeout_set(&ccb->xs->stimeout, aha_timeout, ccb); + timeout_add(&ccb->xs->stimeout, (ccb->timeout * hz) / 1000); + } ++sc->sc_mbofull; aha_nextmbx(wmbo, wmbx, mbo); |