aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin T. Gibbs <gibbs@FreeBSD.org>1998-10-15 23:17:58 +0000
committerJustin T. Gibbs <gibbs@FreeBSD.org>1998-10-15 23:17:58 +0000
commit0a42741c4a960bb4b6221028c31d109a319eed6d (patch)
tree12619f19e076851803a097b4fbada21db6a71fb0
parentbb1f2fe47f8248f26e0cf4758179842440b1a009 (diff)
downloadsrc-0a42741c4a960bb4b6221028c31d109a319eed6d.tar.gz
src-0a42741c4a960bb4b6221028c31d109a319eed6d.zip
Honor CAM_TAG_ACTION_NONE.
Notes
Notes: svn path=/head/; revision=40418
-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
-rw-r--r--sys/pci/ncr.c5
4 files changed, 12 insertions, 8 deletions
diff --git a/sys/dev/buslogic/bt.c b/sys/dev/buslogic/bt.c
index 0087453dddef..ad34914d20fd 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 6e41de93e02b..947caba76074 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 6e635350f700..383b0078f7d1 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....
*/
diff --git a/sys/pci/ncr.c b/sys/pci/ncr.c
index d9a5ce2e8bf6..37033226272c 100644
--- a/sys/pci/ncr.c
+++ b/sys/pci/ncr.c
@@ -1,6 +1,6 @@
/**************************************************************************
**
-** $Id: ncr.c,v 1.135 1998/09/26 14:37:49 dfr Exp $
+** $Id: ncr.c,v 1.136 1998/09/29 09:14:52 bde Exp $
**
** Device driver for the NCR 53C8XX PCI-SCSI-Controller Family.
**
@@ -1357,7 +1357,7 @@ static void ncr_attach (pcici_t tag, int unit);
static char ident[] =
- "\n$Id: ncr.c,v 1.135 1998/09/26 14:37:49 dfr Exp $\n";
+ "\n$Id: ncr.c,v 1.136 1998/09/29 09:14:52 bde Exp $\n";
static const u_long ncr_version = NCR_VERSION * 11
+ (u_long) sizeof (struct ncb) * 7
@@ -4023,6 +4023,7 @@ ncr_action (struct cam_sim *sim, union ccb *ccb)
lp = tp->lp[ccb->ccb_h.target_lun];
if ((ccb->ccb_h.flags & CAM_TAG_ACTION_VALID) != 0
+ && (ccb->csio.tag_action != CAM_TAG_ACTION_NONE)
&& (nego == 0)) {
/*
** assign a tag to this nccb