summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2009-02-13 10:04:59 +0000
committerscottl <scottl@FreeBSD.org>2009-02-13 10:04:59 +0000
commit58c99591c6bd3cd69de7784bd479ef26d45dc334 (patch)
tree105b1dbb4a9a36fa9cd7f8535bd79cc87170896a /sys
parentf0b2ccddbf5a975ff9ec24514c7c5190157107c4 (diff)
downloadFreeBSD-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')
-rw-r--r--sys/cam/cam_xpt.c7
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:
OpenPOWER on IntegriCloud