diff options
author | gibbs <gibbs@FreeBSD.org> | 2001-01-09 00:40:38 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 2001-01-09 00:40:38 +0000 |
commit | 1bfd06c6297d841a1a05dcf01e0c2da740837c32 (patch) | |
tree | dee457571e00ab3fe3300964ea554f5491400aec /sys/dev/aic7xxx/aic7xxx.c | |
parent | 7908ad0b66a66b03f141316f2cb626fc55f35d03 (diff) | |
download | FreeBSD-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.c | 3 |
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; |