From ebbdb48fe6011f6b553d9420b66fbc03e2af3b1a Mon Sep 17 00:00:00 2001 From: Ruslan Ermilov Date: Sun, 18 Jan 2004 13:09:38 +0000 Subject: [PATCH] Apparently there's a good reason why M_WAITOK malloc() is done before xpt_create_path(). --- sys/dev/ppbus/vpo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/ppbus/vpo.c b/sys/dev/ppbus/vpo.c index 47e8bc7c7cb..69d2870403d 100644 --- a/sys/dev/ppbus/vpo.c +++ b/sys/dev/ppbus/vpo.c @@ -186,15 +186,15 @@ static void vpo_cam_rescan(struct vpo_data *vpo) { struct cam_path *path; - union ccb *ccb; + union ccb *ccb = malloc(sizeof(union ccb), M_TEMP, M_WAITOK | M_ZERO); if (xpt_create_path(&path, xpt_periph, cam_sim_path(vpo->sim), 0, 0) != CAM_REQ_CMP) { /* A failure is benign as the user can do a manual rescan */ + free(ccb, M_TEMP); return; } - ccb = malloc(sizeof(union ccb), M_TEMP, M_WAITOK | M_ZERO); xpt_setup_ccb(&ccb->ccb_h, path, 5/*priority (low)*/); ccb->ccb_h.func_code = XPT_SCAN_BUS; ccb->ccb_h.cbfcnp = vpo_cam_rescan_callback;