diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/buslogic/bt.c | 7 | ||||
-rw-r--r-- | sys/dev/dpt/dpt_scsi.c | 5 | ||||
-rw-r--r-- | sys/dev/isp/isp_freebsd_cam.h | 3 | ||||
-rw-r--r-- | sys/pci/ncr.c | 5 |
4 files changed, 12 insertions, 8 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.... */ diff --git a/sys/pci/ncr.c b/sys/pci/ncr.c index d9a5ce2..3703322 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 |