summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1998-10-15 23:17:58 +0000
committergibbs <gibbs@FreeBSD.org>1998-10-15 23:17:58 +0000
commitf3dbbe3c84a7bfd70a0dd80547c8d999e69efb7b (patch)
tree9a711e454502a3137a6e87fe7efcc4916dc2f70d /sys/dev
parent391b30cdfa097f9907fbcdf28a3cc6b292f595ec (diff)
downloadFreeBSD-src-f3dbbe3c84a7bfd70a0dd80547c8d999e69efb7b.zip
FreeBSD-src-f3dbbe3c84a7bfd70a0dd80547c8d999e69efb7b.tar.gz
Honor CAM_TAG_ACTION_NONE.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/buslogic/bt.c7
-rw-r--r--sys/dev/dpt/dpt_scsi.c5
-rw-r--r--sys/dev/isp/isp_freebsd_cam.h3
3 files changed, 9 insertions, 6 deletions
diff --git a/sys/dev/buslogic/bt.c b/sys/dev/buslogic/bt.c
index 0087453..ad34914 100644
--- a/sys/dev/buslogic/bt.c
+++ b/sys/dev/buslogic/bt.c
@@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: bt.c,v 1.4 1998/09/20 05:08:15 gibbs Exp $
+ * $Id: bt.c,v 1.5 1998/10/09 21:38:34 gibbs Exp $
*/
/*
@@ -1013,7 +1013,8 @@ btaction(struct cam_sim *sim, union ccb *ccb)
return;
}
hccb->sense_len = csio->sense_len;
- if ((ccbh->flags & CAM_TAG_ACTION_VALID) != 0) {
+ if ((ccbh->flags & CAM_TAG_ACTION_VALID) != 0
+ && ccb->csio.tag_action != CAM_TAG_ACTION_NONE) {
hccb->tag_enable = TRUE;
hccb->tag_type = (ccb->csio.tag_action & 0x3);
} else {
@@ -2119,7 +2120,7 @@ bttimeout(void *arg)
if ((bccb->flags & BCCB_DEVICE_RESET) != 0
|| bt->cur_outbox->action_code != BMBO_FREE
- || ((ccb->ccb_h.flags & CAM_TAG_ACTION_VALID) != 0
+ || ((bccb->hccb.tag_enable == TRUE)
&& (bt->firmware_ver[0] < '5'))) {
/*
* Try a full host adapter/SCSI bus reset.
diff --git a/sys/dev/dpt/dpt_scsi.c b/sys/dev/dpt/dpt_scsi.c
index 6e41de9..947caba 100644
--- a/sys/dev/dpt/dpt_scsi.c
+++ b/sys/dev/dpt/dpt_scsi.c
@@ -43,7 +43,7 @@
* arrays that span controllers (Wow!).
*/
-#ident "$Id: dpt_scsi.c,v 1.17 1998/10/02 03:40:53 gibbs Exp $"
+#ident "$Id: dpt_scsi.c,v 1.18 1998/10/09 21:42:19 gibbs Exp $"
#define _DPT_C_
@@ -779,7 +779,8 @@ dpt_action(struct cam_sim *sim, union ccb *ccb)
? 0 : 1;
eccb->cp_identify = 1;
- if ((ccb->ccb_h.flags & CAM_TAG_ACTION_VALID) != 0) {
+ if ((ccb->ccb_h.flags & CAM_TAG_ACTION_VALID) != 0
+ && csio->tag_action != CAM_TAG_ACTION_NONE) {
eccb->cp_msg[0] = csio->tag_action;
eccb->cp_msg[1] = dccb->tag;
} else {
diff --git a/sys/dev/isp/isp_freebsd_cam.h b/sys/dev/isp/isp_freebsd_cam.h
index 6e63535..383b007 100644
--- a/sys/dev/isp/isp_freebsd_cam.h
+++ b/sys/dev/isp/isp_freebsd_cam.h
@@ -178,7 +178,8 @@ struct isposinfo {
* Can we tag?
*/
-#define XS_CANTAG(ccb) ((ccb)->ccb_h.flags & CAM_TAG_ACTION_VALID)
+#define XS_CANTAG(ccb) (((ccb)->ccb_h.flags & CAM_TAG_ACTION_VALID) \
+ && (ccb)->tag_action != CAM_TAG_ACTION_NONE)
/*
* And our favorite tag is....
*/
OpenPOWER on IntegriCloud