From: Sebastian Ott Date: Sun, 23 Aug 2009 16:09:04 +0000 (+0200) Subject: [S390] cio: fix double free after failed device initialization X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=06739a8ad321b1e5140b318c648b0cc4bf8c6daa;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git [S390] cio: fix double free after failed device initialization If io_subchannel_initialize_dev fails it will release the only reference to the ccw device therefore the caller should not kfree this device since this is done in the release function. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky --- diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index 3c57c1a18bb8..d593bc76afe3 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c @@ -772,10 +772,8 @@ static struct ccw_device * io_subchannel_create_ccwdev(struct subchannel *sch) cdev = io_subchannel_allocate_dev(sch); if (!IS_ERR(cdev)) { ret = io_subchannel_initialize_dev(sch, cdev); - if (ret) { - kfree(cdev); + if (ret) cdev = ERR_PTR(ret); - } } return cdev; }