Author: mav
Date: Tue Oct 23 15:22:11 2012
New Revision: 241940
URL: http://svn.freebsd.org/changeset/base/241940

Log:
  MFC r241455:
  Don't duplicate path/ccb allocation code, use existing functions.

Modified:
  stable/9/sys/cam/ata/ata_xpt.c
  stable/9/sys/cam/cam_xpt.c
  stable/9/sys/cam/scsi/scsi_xpt.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/cam/ata/ata_xpt.c
==============================================================================
--- stable/9/sys/cam/ata/ata_xpt.c      Tue Oct 23 15:20:59 2012        
(r241939)
+++ stable/9/sys/cam/ata/ata_xpt.c      Tue Oct 23 15:22:11 2012        
(r241940)
@@ -1450,29 +1450,20 @@ ata_scan_lun(struct cam_periph *periph, 
        }
 
        if (request_ccb == NULL) {
-               request_ccb = malloc(sizeof(union ccb), M_CAMXPT, M_NOWAIT);
+               request_ccb = xpt_alloc_ccb_nowait();
                if (request_ccb == NULL) {
                        xpt_print(path, "xpt_scan_lun: can't allocate CCB, "
                            "can't continue\n");
                        return;
                }
-               new_path = malloc(sizeof(*new_path), M_CAMXPT, M_NOWAIT);
-               if (new_path == NULL) {
-                       xpt_print(path, "xpt_scan_lun: can't allocate path, "
-                           "can't continue\n");
-                       free(request_ccb, M_CAMXPT);
-                       return;
-               }
-               status = xpt_compile_path(new_path, xpt_periph,
+               status = xpt_create_path(&new_path, xpt_periph,
                                          path->bus->path_id,
                                          path->target->target_id,
                                          path->device->lun_id);
-
                if (status != CAM_REQ_CMP) {
-                       xpt_print(path, "xpt_scan_lun: can't compile path, "
+                       xpt_print(path, "xpt_scan_lun: can't create path, "
                            "can't continue\n");
-                       free(request_ccb, M_CAMXPT);
-                       free(new_path, M_CAMXPT);
+                       xpt_free_ccb(request_ccb);
                        return;
                }
                xpt_setup_ccb(&request_ccb->ccb_h, new_path, CAM_PRIORITY_XPT);
@@ -1512,9 +1503,9 @@ ata_scan_lun(struct cam_periph *periph, 
 static void
 xptscandone(struct cam_periph *periph, union ccb *done_ccb)
 {
-       xpt_release_path(done_ccb->ccb_h.path);
-       free(done_ccb->ccb_h.path, M_CAMXPT);
-       free(done_ccb, M_CAMXPT);
+
+       xpt_free_path(done_ccb->ccb_h.path);
+       xpt_free_ccb(done_ccb);
 }
 
 static struct cam_ed *

Modified: stable/9/sys/cam/cam_xpt.c
==============================================================================
--- stable/9/sys/cam/cam_xpt.c  Tue Oct 23 15:20:59 2012        (r241939)
+++ stable/9/sys/cam/cam_xpt.c  Tue Oct 23 15:22:11 2012        (r241940)
@@ -3857,12 +3857,6 @@ xpt_bus_register(struct cam_sim *sim, de
                /* Couldn't satisfy request */
                return (CAM_RESRC_UNAVAIL);
        }
-       path = (struct cam_path *)malloc(sizeof(*path), M_CAMXPT, M_NOWAIT);
-       if (path == NULL) {
-               free(new_bus, M_CAMXPT);
-               return (CAM_RESRC_UNAVAIL);
-       }
-
        if (strcmp(sim->sim_name, "xpt") != 0) {
                sim->path_id =
                    xptpathid(sim->sim_name, sim->unit_number, sim->bus_id);
@@ -3896,7 +3890,7 @@ xpt_bus_register(struct cam_sim *sim, de
         */
        new_bus->xport = &xport_default;
 
-       status = xpt_compile_path(path, /*periph*/NULL, sim->path_id,
+       status = xpt_create_path(&path, /*periph*/NULL, sim->path_id,
                                  CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD);
        if (status != CAM_REQ_CMP) {
                xpt_release_bus(new_bus);

Modified: stable/9/sys/cam/scsi/scsi_xpt.c
==============================================================================
--- stable/9/sys/cam/scsi/scsi_xpt.c    Tue Oct 23 15:20:59 2012        
(r241939)
+++ stable/9/sys/cam/scsi/scsi_xpt.c    Tue Oct 23 15:22:11 2012        
(r241940)
@@ -2243,29 +2243,20 @@ scsi_scan_lun(struct cam_periph *periph,
        }
 
        if (request_ccb == NULL) {
-               request_ccb = malloc(sizeof(union ccb), M_CAMXPT, M_NOWAIT);
+               request_ccb = xpt_alloc_ccb_nowait();
                if (request_ccb == NULL) {
                        xpt_print(path, "scsi_scan_lun: can't allocate CCB, "
                            "can't continue\n");
                        return;
                }
-               new_path = malloc(sizeof(*new_path), M_CAMXPT, M_NOWAIT);
-               if (new_path == NULL) {
-                       xpt_print(path, "scsi_scan_lun: can't allocate path, "
-                           "can't continue\n");
-                       free(request_ccb, M_CAMXPT);
-                       return;
-               }
-               status = xpt_compile_path(new_path, xpt_periph,
+               status = xpt_create_path(&new_path, xpt_periph,
                                          path->bus->path_id,
                                          path->target->target_id,
                                          path->device->lun_id);
-
                if (status != CAM_REQ_CMP) {
-                       xpt_print(path, "scsi_scan_lun: can't compile path, "
+                       xpt_print(path, "scsi_scan_lun: can't create path, "
                            "can't continue\n");
-                       free(request_ccb, M_CAMXPT);
-                       free(new_path, M_CAMXPT);
+                       xpt_free_ccb(request_ccb);
                        return;
                }
                xpt_setup_ccb(&request_ccb->ccb_h, new_path, CAM_PRIORITY_XPT);
@@ -2304,9 +2295,9 @@ scsi_scan_lun(struct cam_periph *periph,
 static void
 xptscandone(struct cam_periph *periph, union ccb *done_ccb)
 {
-       xpt_release_path(done_ccb->ccb_h.path);
-       free(done_ccb->ccb_h.path, M_CAMXPT);
-       free(done_ccb, M_CAMXPT);
+
+       xpt_free_path(done_ccb->ccb_h.path);
+       xpt_free_ccb(done_ccb);
 }
 
 static struct cam_ed *
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "[email protected]"

Reply via email to