diff options
author | Alexander Motin <mav@FreeBSD.org> | 2009-10-31 10:43:38 +0000 |
---|---|---|
committer | Alexander Motin <mav@FreeBSD.org> | 2009-10-31 10:43:38 +0000 |
commit | 1e637ba6770e6ae758073120d23b5fbf0f0ac2ef (patch) | |
tree | afe2bf9beb5bf8430164a807b56424ff9b9192fb /sys/cam/scsi/scsi_da.c | |
parent | 4c88ba2d70047ac796158643c6ac487f5881dbd3 (diff) | |
download | src-1e637ba6770e6ae758073120d23b5fbf0f0ac2ef.tar.gz src-1e637ba6770e6ae758073120d23b5fbf0f0ac2ef.zip |
MFp4:
- Reduce code duplication in ATA XPT and PMP driver.
- Move PIO size setting from ada driver to ATA XPT. It is XPT business
to negotiate transfer details. ada driver is now stateless.
- Report PIO size to SIM. It is required for correct PATA SIM operation.
- Tune PMP scan timings. It workarounds some problems with SiI.
- If reset hapens during PMP initialization - restart it.
- Introduce early-initialized periph drivers, which are used during initial
scan process. Use it for xpt, probe, aprobe and pmp. It gives pmp chance
to finish scan before mountroot and numerate devices in right order.
Notes
Notes:
svn path=/head/; revision=198708
Diffstat (limited to 'sys/cam/scsi/scsi_da.c')
-rw-r--r-- | sys/cam/scsi/scsi_da.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c index bb9299a4515c..8f740dcdfad2 100644 --- a/sys/cam/scsi/scsi_da.c +++ b/sys/cam/scsi/scsi_da.c @@ -1491,8 +1491,10 @@ dadone(struct cam_periph *periph, union ccb *done_ccb) { struct da_softc *softc; struct ccb_scsiio *csio; + u_int32_t priority; softc = (struct da_softc *)periph->softc; + priority = done_ccb->ccb_h.pinfo.priority; csio = &done_ccb->csio; switch (csio->ccb_h.ccb_state & DA_CCB_TYPE_MASK) { case DA_CCB_BUFFER_IO: @@ -1610,7 +1612,7 @@ dadone(struct cam_periph *periph, union ccb *done_ccb) softc->state = DA_STATE_PROBE2; free(rdcap, M_SCSIDA); xpt_release_ccb(done_ccb); - xpt_schedule(periph, /*priority*/5); + xpt_schedule(periph, priority); return; } } else { |