diff --git a/sys/cam/ctl/ctl_frontend_ioctl.c b/sys/cam/ctl/ctl_frontend_ioctl.c index 24c624cc38d2..0280391242d2 100644 --- a/sys/cam/ctl/ctl_frontend_ioctl.c +++ b/sys/cam/ctl/ctl_frontend_ioctl.c @@ -226,7 +226,7 @@ cfi_ioctl_port_create(struct ctl_req *req) req->status = CTL_LUN_ERROR; snprintf(req->error_str, sizeof(req->error_str), "ctl_port_register() failed with error %d", retval); - free(port, M_CTL); + free(cfi, M_CTL); return; } @@ -247,7 +247,9 @@ cfi_ioctl_port_create(struct ctl_req *req) req->status = CTL_LUN_ERROR; snprintf(req->error_str, sizeof(req->error_str), "make_dev_s() failed with error %d", retval); - free(port, M_CTL); + ctl_port_offline(port); + ctl_port_deregister(port); + free(cfi, M_CTL); return; }