diff options
Diffstat (limited to 'sys/dev/ic/iha.c')
-rw-r--r-- | sys/dev/ic/iha.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/dev/ic/iha.c b/sys/dev/ic/iha.c index dfa2b2a7a63..b01a1a39601 100644 --- a/sys/dev/ic/iha.c +++ b/sys/dev/ic/iha.c @@ -1,4 +1,4 @@ -/* $OpenBSD: iha.c,v 1.41 2012/01/11 16:22:33 dhill Exp $ */ +/* $OpenBSD: iha.c,v 1.42 2012/02/04 21:44:54 krw Exp $ */ /*------------------------------------------------------------------------- * * Device driver for the INI-9XXXU/UW or INIC-940/950 PCI SCSI Controller. @@ -322,8 +322,6 @@ iha_scsi_cmd(struct scsi_xfer *xs) * But, timeout_add() ONLY if we are not polling. */ timeout_set(&xs->stimeout, iha_timeout, pScb); - if ((pScb->SCB_Flags & SCSI_POLL) == 0) - timeout_add_msec(&xs->stimeout, xs->timeout); iha_exec_scb(sc, pScb); } @@ -2444,12 +2442,16 @@ iha_timeout(void *arg) void iha_exec_scb(struct iha_softc *sc, struct iha_scb *pScb) { + struct scsi_xfer *xs = pScb->SCB_Xs; bus_space_handle_t ioh; bus_space_tag_t iot; int s; s = splbio(); + if ((pScb->SCB_Flags & SCSI_POLL) == 0) + timeout_add_msec(&xs->stimeout, xs->timeout); + if (((pScb->SCB_Flags & SCSI_RESET) != 0) || (pScb->SCB_CDB[0] == REQUEST_SENSE)) iha_push_pend_scb(sc, pScb); /* Insert SCB at head of Pend */ |