summaryrefslogtreecommitdiffstats
path: root/sys/dev/aic7xxx/aic7xxx.c
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>2001-01-09 00:40:38 +0000
committergibbs <gibbs@FreeBSD.org>2001-01-09 00:40:38 +0000
commit1bfd06c6297d841a1a05dcf01e0c2da740837c32 (patch)
treedee457571e00ab3fe3300964ea554f5491400aec /sys/dev/aic7xxx/aic7xxx.c
parent7908ad0b66a66b03f141316f2cb626fc55f35d03 (diff)
downloadFreeBSD-src-1bfd06c6297d841a1a05dcf01e0c2da740837c32.zip
FreeBSD-src-1bfd06c6297d841a1a05dcf01e0c2da740837c32.tar.gz
Index our "DMA safe" sense buffers by SCB rather than hscb.
hscbs may be traded during error recovery due to the way we manage the qinfifo. This has the effect of changing the index to the sense buffer even though the request sense command references the original buffer. SCBs don't play this swapping game and so serve as a more consistent reference.
Diffstat (limited to 'sys/dev/aic7xxx/aic7xxx.c')
-rw-r--r--sys/dev/aic7xxx/aic7xxx.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/dev/aic7xxx/aic7xxx.c b/sys/dev/aic7xxx/aic7xxx.c
index 5f8540a..70f22c7 100644
--- a/sys/dev/aic7xxx/aic7xxx.c
+++ b/sys/dev/aic7xxx/aic7xxx.c
@@ -487,8 +487,7 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat)
printf("Sending Sense\n");
}
#endif
- sg->addr = ahc->scb_data->sense_busaddr
- + (hscb->tag*sizeof(struct scsi_sense_data));
+ sg->addr = ahc_get_sense_bufaddr(ahc, scb);
sg->len = ahc_get_sense_bufsize(ahc, scb);
sg->len |= AHC_DMA_LAST_SEG;
OpenPOWER on IntegriCloud