summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>1997-04-26 05:03:18 +0000
committergibbs <gibbs@FreeBSD.org>1997-04-26 05:03:18 +0000
commit96efe480c0c091aecb2f359675c74aca30f36a4a (patch)
tree038638f1456d9b6b19c596968cc4344b7dddd72c
parentf18676ff22d9297535b2acd920192c055db4ae2d (diff)
downloadFreeBSD-src-96efe480c0c091aecb2f359675c74aca30f36a4a.zip
FreeBSD-src-96efe480c0c091aecb2f359675c74aca30f36a4a.tar.gz
Print out some more diagnostic information when we reject a message.
When we request sense, don't allow disconnection. This closes a window where we might allow an overlapped tagged and non-tagged transaction. The correct fix is to freeze the queue for the target that requests sense which is what will happen in the new CAM framework.
-rw-r--r--sys/i386/scsi/aic7xxx.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/i386/scsi/aic7xxx.c b/sys/i386/scsi/aic7xxx.c
index 77a9981..81af392 100644
--- a/sys/i386/scsi/aic7xxx.c
+++ b/sys/i386/scsi/aic7xxx.c
@@ -32,7 +32,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: aic7xxx.c,v 1.116 1997/04/14 02:27:50 gibbs Exp $
+ * $Id: aic7xxx.c,v 1.117 1997/04/18 16:34:36 gibbs Exp $
*/
/*
* TODO:
@@ -961,8 +961,9 @@ ahc_handle_seqint(ahc, intstat)
{
u_int8_t rejbyte = ahc_inb(ahc, REJBYTE);
printf("%s:%c:%d: Warning - unknown message received from "
- "target (0x%x). Rejecting\n",
- ahc_name(ahc), channel, target, rejbyte);
+ "target (0x%x). SEQ_FLAGS == 0x%x. Rejecting\n",
+ ahc_name(ahc), channel, target, rejbyte,
+ ahc_inb(ahc, SEQ_FLAGS));
break;
}
case NO_IDENT:
@@ -1283,7 +1284,12 @@ ahc_handle_seqint(ahc, intstat)
sg->addr = vtophys(&xs->sense);
sg->len = sizeof(struct scsi_sense_data);
- hscb->control &= DISCENB;
+ /* XXX should allow disconnection, but
+ * can't as it might allow overlapped
+ * tagged commands.
+ */
+ /* hscb->control &= DISCENB; */
+ hscb->control = 0;
hscb->status = 0;
hscb->SG_segment_count = 1;
hscb->SG_list_pointer = vtophys(sg);
OpenPOWER on IntegriCloud