diff options
author | scottl <scottl@FreeBSD.org> | 2009-02-13 10:04:59 +0000 |
---|---|---|
committer | scottl <scottl@FreeBSD.org> | 2009-02-13 10:04:59 +0000 |
commit | 58c99591c6bd3cd69de7784bd479ef26d45dc334 (patch) | |
tree | 105b1dbb4a9a36fa9cd7f8535bd79cc87170896a /sys/cam | |
parent | f0b2ccddbf5a975ff9ec24514c7c5190157107c4 (diff) | |
download | FreeBSD-src-58c99591c6bd3cd69de7784bd479ef26d45dc334.zip FreeBSD-src-58c99591c6bd3cd69de7784bd479ef26d45dc334.tar.gz |
In the case that the probe has determined that it can't query the device for
a serial number, fall through to the next case so that initial negotiation
still happens. Without this, devices were showing up with only 1 available
tag opening, leading to observations of very poor I/O performance.
This should fix problems reported with VMWare Fusion and ESX. Early
generation MPT-SAS controllers with SATA disks might also be affected.
HP CISS controllers are also likely affected, as are many other
pseudo-scsi disk subsystems.
Diffstat (limited to 'sys/cam')
-rw-r--r-- | sys/cam/cam_xpt.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index e2d88be..8891c38 100644 --- a/sys/cam/cam_xpt.c +++ b/sys/cam/cam_xpt.c @@ -6143,10 +6143,9 @@ probedone(struct cam_periph *periph, union ccb *done_ccb) xpt_schedule(periph, priority); return; } - xpt_release_ccb(done_ccb); - softc->action = PROBE_TUR_FOR_NEGOTIATION; - xpt_schedule(periph, priority); - return; + + csio->data_ptr = NULL; + /* FALLTHROUGH */ } case PROBE_SERIAL_NUM_1: |