aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/iir
diff options
context:
space:
mode:
authorScott Long <scottl@FreeBSD.org>2013-09-25 17:16:21 +0000
committerScott Long <scottl@FreeBSD.org>2013-09-25 17:16:21 +0000
commiteb8a7632ba2a674b697cfedeba54ccb941a446b9 (patch)
treeebaa28f9cc2c11e9c0022f0db7fff2cc3e92b88c /sys/dev/iir
parentf564de00f794fb33bf22a8c4fba818a8bee8a71e (diff)
Notes
Diffstat (limited to 'sys/dev/iir')
-rw-r--r--sys/dev/iir/iir.c5
-rw-r--r--sys/dev/iir/iir.h1
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/iir/iir.c b/sys/dev/iir/iir.c
index 684fce3298e1..1090042ff511 100644
--- a/sys/dev/iir/iir.c
+++ b/sys/dev/iir/iir.c
@@ -270,6 +270,7 @@ iir_init(struct gdt_softc *gdt)
gccb->gc_map_flag = TRUE;
gccb->gc_scratch = &gdt->sc_gcscratch[GDT_SCRATCH_SZ * i];
gccb->gc_scratch_busbase = gdt->sc_gcscratch_busbase + GDT_SCRATCH_SZ * i;
+ callout_handle_init(&gccb->gc_timeout_ch);
SLIST_INSERT_HEAD(&gdt->sc_free_gccb, gccb, sle);
}
gdt->sc_init_level++;
@@ -1239,7 +1240,7 @@ gdtexecuteccb(void *arg, bus_dma_segment_t *dm_segs, int nseg, int error)
ccb->ccb_h.status |= CAM_SIM_QUEUED;
/* timeout handling */
- ccb->ccb_h.timeout_ch =
+ gccb->gc_timeout_ch =
timeout(iir_timeout, (caddr_t)gccb,
(ccb->ccb_h.timeout * hz) / 1000);
@@ -1747,7 +1748,7 @@ gdt_sync_event(struct gdt_softc *gdt, int service,
printf("\n");
return (0);
} else {
- untimeout(iir_timeout, gccb, ccb->ccb_h.timeout_ch);
+ untimeout(iir_timeout, gccb, gccb->gc_timeout_ch);
if (gdt->sc_status == GDT_S_BSY) {
GDT_DPRINTF(GDT_D_DEBUG, ("gdt_sync_event(%p) gccb %p busy\n",
gdt, gccb));
diff --git a/sys/dev/iir/iir.h b/sys/dev/iir/iir.h
index dbae7d2a80f5..de7b641257e9 100644
--- a/sys/dev/iir/iir.h
+++ b/sys/dev/iir/iir.h
@@ -684,6 +684,7 @@ struct gdt_ccb {
union ccb *gc_ccb;
gdt_ucmd_t *gc_ucmd;
bus_dmamap_t gc_dmamap;
+ struct callout_handle gc_timeout_ch;
int gc_map_flag;
int gc_timeout;
u_int8_t gc_service;