We don't set cp->initialized to true so calling cp_free will just return and not do anything. Signed-off-by: Farhan Ali <alifm@xxxxxxxxxxxxx> --- drivers/s390/cio/vfio_ccw_cp.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/s390/cio/vfio_ccw_cp.c b/drivers/s390/cio/vfio_ccw_cp.c index 5ac4c1e..cab1be9 100644 --- a/drivers/s390/cio/vfio_ccw_cp.c +++ b/drivers/s390/cio/vfio_ccw_cp.c @@ -647,8 +647,6 @@ int cp_init(struct channel_program *cp, struct device *mdev, union orb *orb) /* Build a ccwchain for the first CCW segment */ ret = ccwchain_handle_ccw(orb->cmd.cpa, cp); - if (ret) - cp_free(cp); if (!ret) cp->initialized = true; -- 2.7.4