summaryrefslogtreecommitdiff
path: root/sys/dev/ic/iha.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ic/iha.c')
-rw-r--r--sys/dev/ic/iha.c8
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 */