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-Tag: v2.6.31-rc8~49 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=06739a8ad321b1e5140b318c648b0cc4bf8c6daa;p=platform%2Fupstream%2Fkernel-adaptation-pc.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 3c57c1a..d593bc7 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; }