From f951ddc01917fed061cd65efcb7d80245f7b7fb6 Mon Sep 17 00:00:00 2001 From: abs Date: Fri, 30 Aug 2002 21:54:10 +0000 Subject: [PATCH] Fix AHC_NO_TAGS to actually disable tagged queuing, and document. --- share/man/man4/ahc.4 | 5 ++++- sys/dev/ic/aic7xxx.c | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/share/man/man4/ahc.4 b/share/man/man4/ahc.4 index 8ced4ecfbf66..2e0f03ab8302 100644 --- a/share/man/man4/ahc.4 +++ b/share/man/man4/ahc.4 @@ -1,4 +1,4 @@ -.\" $NetBSD: ahc.4,v 1.20 2002/02/13 08:17:30 ross Exp $ +.\" $NetBSD: ahc.4,v 1.21 2002/08/30 21:54:12 abs Exp $ .\" .\" Copyright (c) 1995, 1996, 1997, 1998, 2000 .\" Justin T. Gibbs. All rights reserved. @@ -60,6 +60,9 @@ For CardBus cards: To allow PCI adapters to use memory mapped I/O if enabled: .Cd options AHC_ALLOW_MEMIO .Pp +Disable tagged queuing (avoids hangs on some hardware under load) +.Cd options AHC_NO_TAGS +.Pp .if 0 \{ To configure one or more controllers to assume the target role: .Cd options AHC_TMODE_ENABLE \*[Lt]bitmask of units\*[Gt] diff --git a/sys/dev/ic/aic7xxx.c b/sys/dev/ic/aic7xxx.c index 8e54ea74910c..dc10ce81c528 100644 --- a/sys/dev/ic/aic7xxx.c +++ b/sys/dev/ic/aic7xxx.c @@ -1,4 +1,4 @@ -/* $NetBSD: aic7xxx.c,v 1.89 2002/05/31 17:31:15 thorpej Exp $ */ +/* $NetBSD: aic7xxx.c,v 1.90 2002/08/30 21:54:10 abs Exp $ */ /* * Generic driver for the aic7xxx based adaptec SCSI controllers @@ -88,7 +88,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: aic7xxx.c,v 1.89 2002/05/31 17:31:15 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: aic7xxx.c,v 1.90 2002/08/30 21:54:10 abs Exp $"); #include "opt_ddb.h" #include "opt_ahc.h" @@ -1330,6 +1330,7 @@ ahc_set_width(struct ahc_softc *ahc, struct ahc_devinfo *devinfo, static void ahc_set_tags(struct ahc_softc *ahc, struct ahc_devinfo *devinfo, int enable) { +#ifndef AHC_NO_TAGS struct ahc_initiator_tinfo *tinfo; struct tmode_tstate *tstate; @@ -1342,6 +1343,7 @@ ahc_set_tags(struct ahc_softc *ahc, struct ahc_devinfo *devinfo, int enable) tstate->tagenable &= ~devinfo->target_mask; tstate->tagdisable |= devinfo->target_mask; } +#endif } static void