diff options
author | gibbs <gibbs@FreeBSD.org> | 1997-09-21 21:41:49 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 1997-09-21 21:41:49 +0000 |
commit | e1b0aaaa7646122022e6179a0b6406809f2126b8 (patch) | |
tree | 453c2e0b2fbd7526c2bfa12a66b852f740856480 /sys/i386/isa/aic6360.c | |
parent | dc043d9d0aa92d02293099dc6adcabe0e6c972cb (diff) | |
download | FreeBSD-src-e1b0aaaa7646122022e6179a0b6406809f2126b8.zip FreeBSD-src-e1b0aaaa7646122022e6179a0b6406809f2126b8.tar.gz |
aha1542.c aic6360.c cy.c fd.c ft.c
if_ie.c if_wl.c if_zp.c isa.c isa_device.h
labpc.c mcd.c ncr5380.c scd.c seagate.c si.c
sio.c tw.c ultra14f.c wcd.c wd.c:
Update for changes in the callout interface.
apic_vector.s icu_vector.s ipl.s ipl_funcs.c:
Add CAM software/hardware interrupt support.
Diffstat (limited to 'sys/i386/isa/aic6360.c')
-rw-r--r-- | sys/i386/isa/aic6360.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/sys/i386/isa/aic6360.c b/sys/i386/isa/aic6360.c index 4eec99a..d1b3e1f 100644 --- a/sys/i386/isa/aic6360.c +++ b/sys/i386/isa/aic6360.c @@ -31,7 +31,7 @@ */ /* - * $Id: aic6360.c,v 1.29 1997/03/24 11:23:38 bde Exp $ + * $Id: aic6360.c,v 1.30 1997/07/20 14:09:50 bde Exp $ * * Acknowledgements: Many of the algorithms used in this driver are * inspired by the work of Julian Elischer (julian@tfs.com) and @@ -933,13 +933,15 @@ aic_init(aic) aic->state = AIC_CLEANING; if (aic->nexus != NULL) { aic->nexus->xs->error = XS_DRIVER_STUFFUP; - untimeout(aic_timeout, (caddr_t)aic->nexus); + untimeout(aic_timeout, (caddr_t)aic->nexus, + aic->nexus->xs->timeout_ch); aic_done(aic->nexus); } aic->nexus = NULL; while (acb = aic->nexus_list.tqh_first) { acb->xs->error = XS_DRIVER_STUFFUP; - untimeout(aic_timeout, (caddr_t)acb); + untimeout(aic_timeout, (caddr_t)aic->nexus, + aic->nexus->xs->timeout_ch); aic_done(acb); } } @@ -1038,7 +1040,8 @@ aic_scsi_cmd(xs) s = splbio(); TAILQ_INSERT_TAIL(&aic->ready_list, acb, chain); - timeout(aic_timeout, (caddr_t)acb, (xs->timeout*hz)/1000); + xs->timeout_ch = timeout(aic_timeout, (caddr_t)acb, + (xs->timeout*hz)/1000); if (aic->state == AIC_IDLE) aic_sched(aic); @@ -1462,7 +1465,8 @@ aic_msgin(aic) } acb->xs->resid = acb->dleft = aic->dleft; aic->flags |= AIC_BUSFREE_OK; - untimeout(aic_timeout, (caddr_t)acb); + untimeout(aic_timeout, (caddr_t)acb, + acb->xs->timeout_ch); aic_done(acb); break; case MSG_MESSAGE_REJECT: @@ -2122,7 +2126,8 @@ aicintr(int unit) */ printf("aic: unexpected busfree\n"); acb->xs->error = XS_DRIVER_STUFFUP; - untimeout(aic_timeout, (caddr_t)acb); + untimeout(aic_timeout, (caddr_t)acb, + acb->xs->timeout_ch); aic_done(acb); } LOGLINE(aic); @@ -2144,7 +2149,8 @@ aicintr(int unit) outb(CLRSINT1, CLRSELTIMO); aic->state = AIC_IDLE; acb->xs->error = XS_TIMEOUT; - untimeout(aic_timeout, (caddr_t)acb); + untimeout(aic_timeout, (caddr_t)acb, + acb->xs->timeout_ch); aic_done(acb); LOGLINE(aic); outb(DMACNTRL0, INTEN); @@ -2226,7 +2232,8 @@ aicintr(int unit) Debugger("aic6360"); fatal_if_no_DDB(); acb->xs->error = XS_DRIVER_STUFFUP; - untimeout(aic_timeout, (caddr_t)acb); + untimeout(aic_timeout, (caddr_t)acb, + acb->xs->timeout_ch); aic_done(acb); aic_init(aic); return; @@ -2244,7 +2251,8 @@ aicintr(int unit) Debugger("aic6360"); fatal_if_no_DDB(); acb->xs->error = XS_DRIVER_STUFFUP; - untimeout(aic_timeout, (caddr_t)acb); + untimeout(aic_timeout, (caddr_t)acb, + acb->xs->timeout_ch); aic_done(acb); aic_init(aic); return; |