svn commit: r282239 - head/sys/cam/scsi
Scott Long
scottl at FreeBSD.org
Wed Apr 29 17:18:42 UTC 2015
Author: scottl
Date: Wed Apr 29 17:18:41 2015
New Revision: 282239
URL: https://svnweb.freebsd.org/changeset/base/282239
Log:
Revert r282227. It is clearly incorrect as it frees an object that is still
referenced. I think that there does exist an unlikely edge case for a
memory leak, but only if a driver is incorrectly written and specifies no
valid range of targets to scan. That can be fixed in a follow-up commit.
Obtained from: Netflix, Inc.
Modified:
head/sys/cam/scsi/scsi_xpt.c
Modified: head/sys/cam/scsi/scsi_xpt.c
==============================================================================
--- head/sys/cam/scsi/scsi_xpt.c Wed Apr 29 17:01:28 2015 (r282238)
+++ head/sys/cam/scsi/scsi_xpt.c Wed Apr 29 17:18:41 2015 (r282239)
@@ -2008,7 +2008,6 @@ scsi_scan_bus(struct cam_periph *periph,
" with status %#x, bus scan halted\n",
status);
free(scan_info, M_CAMXPT);
- scan_info = NULL;
request_ccb->ccb_h.status = status;
xpt_free_ccb(work_ccb);
xpt_done(request_ccb);
@@ -2018,7 +2017,6 @@ scsi_scan_bus(struct cam_periph *periph,
if (work_ccb == NULL) {
xpt_free_ccb((union ccb *)scan_info->cpi);
free(scan_info, M_CAMXPT);
- scan_info = NULL;
xpt_free_path(path);
request_ccb->ccb_h.status = CAM_RESRC_UNAVAIL;
xpt_done(request_ccb);
@@ -2034,7 +2032,6 @@ scsi_scan_bus(struct cam_periph *periph,
xpt_action(work_ccb);
}
- free(scan_info, M_CAMXPT);
mtx_lock(mtx);
break;
}
More information about the svn-src-all
mailing list