diff options
| author | Justin T. Gibbs <gibbs@FreeBSD.org> | 1999-04-19 21:27:36 +0000 |
|---|---|---|
| committer | Justin T. Gibbs <gibbs@FreeBSD.org> | 1999-04-19 21:27:36 +0000 |
| commit | d72b216c5b750b8418a91213519c9ac891931797 (patch) | |
| tree | 648f8e3ee5ea301979179658d60f24a499cc25e3 /sys/dev | |
| parent | d3a5df64ab0a5a277ecfbd7eb449b4245266d4f1 (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/advansys/advansys.c | 6 | ||||
| -rw-r--r-- | sys/dev/advansys/advlib.c | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/sys/dev/advansys/advansys.c b/sys/dev/advansys/advansys.c index 83c86139f71c..0071950ff9be 100644 --- a/sys/dev/advansys/advansys.c +++ b/sys/dev/advansys/advansys.c @@ -32,7 +32,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: advansys.c,v 1.7 1998/12/22 18:12:09 gibbs Exp $ + * $Id: advansys.c,v 1.8 1999/04/07 22:59:12 gibbs Exp $ */ /* * Ported from: @@ -1127,12 +1127,14 @@ adv_done(struct adv_softc *adv, union ccb *ccb, u_int done_stat, ccb->ccb_h.status = CAM_SEQUENCE_FAIL; adv_reset_bus(adv); break; + case QHSTA_M_AUTO_REQ_SENSE_FAIL: + ccb->ccb_h.status = CAM_AUTOSENSE_FAIL; + break; case QHSTA_D_QDONE_SG_LIST_CORRUPTED: case QHSTA_D_ASC_DVC_ERROR_CODE_SET: case QHSTA_D_HOST_ABORT_FAILED: case QHSTA_D_EXE_SCSI_Q_FAILED: case QHSTA_D_ASPI_NO_BUF_POOL: - case QHSTA_M_AUTO_REQ_SENSE_FAIL: case QHSTA_M_BAD_TAG_CODE: case QHSTA_D_LRAM_CMP_ERROR: case QHSTA_M_MICRO_CODE_ERROR_HALT: diff --git a/sys/dev/advansys/advlib.c b/sys/dev/advansys/advlib.c index 8af5c1a5fbd5..66640c84dd89 100644 --- a/sys/dev/advansys/advlib.c +++ b/sys/dev/advansys/advlib.c @@ -28,7 +28,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: advlib.c,v 1.10 1998/12/07 21:58:15 archie Exp $ + * $Id: advlib.c,v 1.11 1999/04/11 02:55:50 eivind Exp $ */ /* * Ported from: @@ -44,6 +44,7 @@ */ #include <sys/param.h> +#include <sys/kernel.h> #include <sys/systm.h> #include <machine/bus_pio.h> @@ -1004,6 +1005,13 @@ adv_isr_chip_halted(struct adv_softc *adv) scsi_busy = adv_read_lram_8(adv, ADVV_SCSIBUSY_B); scsi_busy &= ~target_mask; adv_write_lram_8(adv, ADVV_SCSIBUSY_B, scsi_busy); + /* + * Ensure we have enough time to actually + * retrieve the sense. + */ + untimeout(adv_timeout, (caddr_t)ccb, ccb->ccb_h.timeout_ch); + ccb->ccb_h.timeout_ch = + timeout(adv_timeout, (caddr_t)ccb, 5 * hz); } else if (int_halt_code == ADV_HALT_SDTR_REJECTED) { struct ext_msg out_msg; |
