diff options
author | itojun <itojun@FreeBSD.org> | 1997-08-30 05:49:20 +0000 |
---|---|---|
committer | itojun <itojun@FreeBSD.org> | 1997-08-30 05:49:20 +0000 |
commit | 8ab1ccfa8c5743113620043a9bdad77be30b4666 (patch) | |
tree | 50024ced3d53b408467c2a4f70746ec00fab96d7 /sys/pci | |
parent | cca63e4f094182ea869d9882624d193900487f17 (diff) | |
download | FreeBSD-src-8ab1ccfa8c5743113620043a9bdad77be30b4666.zip FreeBSD-src-8ab1ccfa8c5743113620043a9bdad77be30b4666.tar.gz |
Scsi RESERVATION CONFLICT and BUSY support for Tekram scsi cards.
Checked with DC390. Pls mail me if you have any trouble with this patch.
Diffstat (limited to 'sys/pci')
-rw-r--r-- | sys/pci/scsiiom.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sys/pci/scsiiom.c b/sys/pci/scsiiom.c index 29fdb2d..c611518 100644 --- a/sys/pci/scsiiom.c +++ b/sys/pci/scsiiom.c @@ -1176,6 +1176,20 @@ SRBdone( PACB pACB, PDCB pDCB, PSRB pSRB ) pSRB->TargetStatus = 0; pcmd->error = XS_TIMEOUT; } + else if (status == SCSI_STAT_BUSY) + { +#ifdef DC390_DEBUG0 + printf("DC390: target busy at %s %d\n", __FILE__, __LINE__); +#endif + pcmd->error = XS_BUSY; + } + else if (status == SCSI_STAT_RESCONFLICT) + { +#ifdef DC390_DEBUG0 + printf("DC390: target reserved at %s %d\n", __FILE__, __LINE__); +#endif + pcmd->error = XS_BUSY; /*XXX*/ + } else { pSRB->AdaptStatus = 0; @@ -1193,6 +1207,9 @@ SRBdone( PACB pACB, PDCB pDCB, PSRB pSRB ) } else { +#ifdef DC390_DEBUG0 + printf("DC390: driver stuffup at %s %d\n", __FILE__, __LINE__); +#endif pcmd->error = XS_DRIVER_STUFFUP; } } @@ -1207,6 +1224,9 @@ SRBdone( PACB pACB, PDCB pDCB, PSRB pSRB ) } else if( pSRB->SRBStatus & PARITY_ERROR) { +#ifdef DC390_DEBUG0 + printf("DC390: driver stuffup %s %d\n", __FILE__, __LINE__); +#endif pcmd->error = XS_DRIVER_STUFFUP; } else /* No error */ |