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;
        }
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to