diff options
author | mav <mav@FreeBSD.org> | 2009-11-11 11:10:36 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2009-11-11 11:10:36 +0000 |
commit | 17cadb1aa54db7660df55a98f34126e08af6760f (patch) | |
tree | ceea3fcf873c9fdc72f0d23c18d3cdc692b9c8c0 /sys/cam/scsi | |
parent | 2bf1f78b4d6b6f7e74958969c676160766e11f2e (diff) | |
download | FreeBSD-src-17cadb1aa54db7660df55a98f34126e08af6760f.zip FreeBSD-src-17cadb1aa54db7660df55a98f34126e08af6760f.tar.gz |
MFp4:
- Move tagged queueing control from ADA to ATA XPT. It allows to control
device command queue length correctly. First step to support < 32 tags.
- Limit queue for non-tagged devices by 2 slots for ahci(4) and siis(4).
- Implement quirk matching for ATA devices.
- Move xpt_schedule_dev_sendq() from header to source file.
- Move delayed queue shrinking to the more expected place - element freeing.
- Remove some SCSIsms in ATA.
Diffstat (limited to 'sys/cam/scsi')
-rw-r--r-- | sys/cam/scsi/scsi_xpt.c | 19 |
1 files changed, 1 insertions, 18 deletions
diff --git a/sys/cam/scsi/scsi_xpt.c b/sys/cam/scsi/scsi_xpt.c index d780f9a..cae7be6 100644 --- a/sys/cam/scsi/scsi_xpt.c +++ b/sys/cam/scsi/scsi_xpt.c @@ -2274,24 +2274,7 @@ scsi_set_transfer_settings(struct ccb_trans_settings *cts, struct cam_ed *device device->tag_delay_count = CAM_TAG_DELAY_COUNT; device->flags |= CAM_DEV_TAG_AFTER_COUNT; } else { - struct ccb_relsim crs; - - xpt_freeze_devq(cts->ccb_h.path, /*count*/1); - device->inq_flags &= ~SID_CmdQue; - xpt_dev_ccbq_resize(cts->ccb_h.path, - sim->max_dev_openings); - device->flags &= ~CAM_DEV_TAG_AFTER_COUNT; - device->tag_delay_count = 0; - - xpt_setup_ccb(&crs.ccb_h, cts->ccb_h.path, - CAM_PRIORITY_NORMAL); - crs.ccb_h.func_code = XPT_REL_SIMQ; - crs.release_flags = RELSIM_RELEASE_AFTER_QEMPTY; - crs.openings - = crs.release_timeout - = crs.qfrozen_cnt - = 0; - xpt_action((union ccb *)&crs); + xpt_stop_tags(cts->ccb_h.path); } } } |