diff options
-rw-r--r-- | sys/dev/ic/iha.c | 8 | ||||
-rw-r--r-- | sys/dev/ic/sili.c | 4 | ||||
-rw-r--r-- | sys/dev/pci/ahci.c | 5 |
3 files changed, 9 insertions, 8 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 */ diff --git a/sys/dev/ic/sili.c b/sys/dev/ic/sili.c index 9fe184e0edf..065699d339f 100644 --- a/sys/dev/ic/sili.c +++ b/sys/dev/ic/sili.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sili.c,v 1.50 2012/02/04 17:52:22 krw Exp $ */ +/* $OpenBSD: sili.c,v 1.51 2012/02/04 21:44:54 krw Exp $ */ /* * Copyright (c) 2007 David Gwynne <dlg@openbsd.org> @@ -1460,8 +1460,8 @@ sili_ata_cmd(struct ata_xfer *xa) if (xa->flags & ATA_F_POLL) sili_poll(ccb, xa->timeout, sili_ata_cmd_timeout); else { - timeout_add_msec(&xa->stimeout, xa->timeout); s = splbio(); + timeout_add_msec(&xa->stimeout, xa->timeout); sili_start(sp, ccb); splx(s); } diff --git a/sys/dev/pci/ahci.c b/sys/dev/pci/ahci.c index 6c07f248a6c..774e48aa99b 100644 --- a/sys/dev/pci/ahci.c +++ b/sys/dev/pci/ahci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ahci.c,v 1.185 2011/11/14 00:25:17 mlarkin Exp $ */ +/* $OpenBSD: ahci.c,v 1.186 2012/02/04 21:44:54 krw Exp $ */ /* * Copyright (c) 2006 David Gwynne <dlg@openbsd.org> @@ -3440,9 +3440,8 @@ ahci_ata_cmd(struct ata_xfer *xa) if (xa->flags & ATA_F_POLL) ahci_poll(ccb, xa->timeout, ahci_ata_cmd_timeout); else { - timeout_add_msec(&xa->stimeout, xa->timeout); - s = splbio(); + timeout_add_msec(&xa->stimeout, xa->timeout); ahci_start(ccb); splx(s); } |