summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authorMarco Peereboom <marco@cvs.openbsd.org>2006-05-15 23:28:42 +0000
committerMarco Peereboom <marco@cvs.openbsd.org>2006-05-15 23:28:42 +0000
commitfea35cf3d59a2f4ba5d7917cefd567b6d026bc86 (patch)
tree44a97addae32846e2167885e0aebb18eba71f5be /sys/dev/ic
parent8c2f3074e2bddb3fe5f8d874bf7413210bf7b0b4 (diff)
Oops don't send command twice to firmware when polling.
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/mfi.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/ic/mfi.c b/sys/dev/ic/mfi.c
index fefd68bd9ab..d3f41be5c94 100644
--- a/sys/dev/ic/mfi.c
+++ b/sys/dev/ic/mfi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mfi.c,v 1.26 2006/05/15 23:20:56 marco Exp $ */
+/* $OpenBSD: mfi.c,v 1.27 2006/05/15 23:28:41 marco Exp $ */
/*
* Copyright (c) 2006 Marco Peereboom <marco@peereboom.us>
*
@@ -745,8 +745,6 @@ mfi_start_xs(struct mfi_softc *sc, struct mfi_ccb *ccb,
ccb->ccb_frame_size += sc->sc_frames_size * ccb->ccb_dmamap->dm_nsegs;
ccb->ccb_extra_frames = (ccb->ccb_frame_size - 1) / MFI_FRAME_SIZE;
- mfi_despatch_cmd(sc, ccb);
-
if (ccb->ccb_xs->flags & SCSI_POLL) {
if (mfi_poll(sc, ccb)) {
printf("%s: mfi_poll failed\n", DEVNAME(sc));
@@ -758,6 +756,8 @@ mfi_start_xs(struct mfi_softc *sc, struct mfi_ccb *ccb,
return (COMPLETE);
}
+ mfi_despatch_cmd(sc, ccb);
+
DNPRINTF(MFI_D_DMA, "%s: mfi_start_xs: queued %d\n", DEVNAME(sc),
ccb->ccb_dmamap->dm_nsegs);