Message ID | 1347454564-5178-2-git-send-email-peter.senna@gmail.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers |
Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from <linux-media-owner@vger.kernel.org>) id 1TBmXx-0007VX-3I for patchwork@linuxtv.org; Wed, 12 Sep 2012 15:00:01 +0200 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.75/mailfrontend-3) with esmtp for <patchwork@linuxtv.org> id 1TBmXw-0000j0-EA; Wed, 12 Sep 2012 15:00:00 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758421Ab2ILM7n (ORCPT <rfc822;patchwork@linuxtv.org>); Wed, 12 Sep 2012 08:59:43 -0400 Received: from mail-wg0-f44.google.com ([74.125.82.44]:38091 "EHLO mail-wg0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757608Ab2ILM4T (ORCPT <rfc822;linux-media@vger.kernel.org>); Wed, 12 Sep 2012 08:56:19 -0400 Received: by wgbdr13 with SMTP id dr13so1485556wgb.1 for <multiple recipients>; Wed, 12 Sep 2012 05:56:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer; bh=LZhUr9TrIWGItEa6zqeQVm1bBRlYSceXzr9t4G/p70w=; b=fZg4DY90zi4xnJKWSiExx4yKt4fxsoa0+o4e8QKgqr+bUOx2Bch1NIWlSbyLPIBIrw PCBuen8eHkJzaJfK49XK1wBW9CpaajEVsZm2mx2NpoVTn712FVx6LErtgVXPLnBB0twS aCFVhGxWoqADnib4tKlXJ3splxCvcBq8gAzb2OBrKPs4UK98iljJzJxTLZhN0rRO0tS3 NP9RL8i8rSnHbeWqiABY8Vdi5tQ/HehYViz4Is9y5EksuO6Yr/5nPXPOV4gpd51hXi/k w1fRI/rBZ+iCfpRzwx7DkpL9vYH41ixT1x1DHUMyQuwJ7PgimNoWhmoiZ1oP3kMKuF8T J8NQ== Received: by 10.216.236.163 with SMTP id w35mr12009571weq.13.1347454578105; Wed, 12 Sep 2012 05:56:18 -0700 (PDT) Received: from localhost.localdomain (ppeter.rsr.lip6.fr. [132.227.76.16]) by mx.google.com with ESMTPS id cl8sm7933596wib.10.2012.09.12.05.56.16 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 12 Sep 2012 05:56:17 -0700 (PDT) From: Peter Senna Tschudin <peter.senna@gmail.com> To: Mauro Carvalho Chehab <mchehab@infradead.org> Cc: kernel-janitors@vger.kernel.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 7/8] drivers/media/platform/davinci/vpbe.c: Removes useless kfree() Date: Wed, 12 Sep 2012 14:55:58 +0200 Message-Id: <1347454564-5178-2-git-send-email-peter.senna@gmail.com> X-Mailer: git-send-email 1.7.11.4 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2012.9.12.125128 X-PMX-Spam: Gauge=IIIIIIIII, Probability=9%, Report=' FORGED_FROM_GMAIL 0.1, MULTIPLE_RCPTS 0.1, HTML_00_01 0.05, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1700_1799 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, DKIM_SIGNATURE 0, FROM_NAME_PHRASE 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __CP_URI_IN_BODY 0, __FRAUD_BODY_WEBMAIL 0, __FRAUD_WEBMAIL 0, __FRAUD_WEBMAIL_FROM 0, __FROM_GMAIL 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __MULTIPLE_RCPTS_CC_X2 0, __PHISH_SPEAR_STRUCTURE_1 0, __SANE_MSGID 0, __TO_MALFORMED_2 0, __URI_NO_WWW 0, __URI_NS ' |
Commit Message
Peter Senna Tschudin
Sept. 12, 2012, 12:55 p.m. UTC
From: Peter Senna Tschudin <peter.senna@gmail.com> Remove useless kfree() and clean up code related to the removal. The semantic patch that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r exists@ position p1,p2; expression x; @@ if (x@p1 == NULL) { ... kfree@p2(x); ... return ...; } @unchanged exists@ position r.p1,r.p2; expression e <= r.x,x,e1; iterator I; statement S; @@ if (x@p1 == NULL) { ... when != I(x,...) S when != e = e1 when != e += e1 when != e -= e1 when != ++e when != --e when != e++ when != e-- when != &e kfree@p2(x); ... return ...; } @ok depends on unchanged exists@ position any r.p1; position r.p2; expression x; @@ ... when != true x@p1 == NULL kfree@p2(x); @depends on !ok && unchanged@ position r.p2; expression x; @@ *kfree@p2(x); // </smpl> Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com> --- drivers/media/platform/davinci/vpbe.c | 1 - 1 file changed, 1 deletion(-) -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Comments
2012/9/12 Peter Senna Tschudin <peter.senna@gmail.com>: > From: Peter Senna Tschudin <peter.senna@gmail.com> > > Remove useless kfree() and clean up code related to the removal. > > The semantic patch that finds this problem is as follows: > (http://coccinelle.lip6.fr/) > > // <smpl> > @r exists@ > position p1,p2; > expression x; > @@ > > if (x@p1 == NULL) { ... kfree@p2(x); ... return ...; } > > @unchanged exists@ > position r.p1,r.p2; > expression e <= r.x,x,e1; > iterator I; > statement S; > @@ > > if (x@p1 == NULL) { ... when != I(x,...) S > when != e = e1 > when != e += e1 > when != e -= e1 > when != ++e > when != --e > when != e++ > when != e-- > when != &e > kfree@p2(x); ... return ...; } > > @ok depends on unchanged exists@ > position any r.p1; > position r.p2; > expression x; > @@ > > ... when != true x@p1 == NULL > kfree@p2(x); > > @depends on !ok && unchanged@ > position r.p2; > expression x; > @@ > > *kfree@p2(x); > // </smpl> > > Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com> > > --- > drivers/media/platform/davinci/vpbe.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/media/platform/davinci/vpbe.c b/drivers/media/platform/davinci/vpbe.c > index c4a82a1..1125a87 100644 > --- a/drivers/media/platform/davinci/vpbe.c > +++ b/drivers/media/platform/davinci/vpbe.c > @@ -771,7 +771,6 @@ static int vpbe_initialize(struct device *dev, struct vpbe_device *vpbe_dev) > return 0; > > vpbe_fail_amp_register: > - kfree(vpbe_dev->amp); Now that you removed this kfree, you could remove this label too. Very nice your cleanup :) > vpbe_fail_sd_register: > kfree(vpbe_dev->encoders); > vpbe_fail_v4l2_device: > > -- > To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
Marcos, > Now that you removed this kfree, you could remove this label too. Very > nice your cleanup :) Thanks! > >> vpbe_fail_sd_register: >> kfree(vpbe_dev->encoders); >> vpbe_fail_v4l2_device: The problem removing the label is that it will require some more work naming the labels. See: if (!vpbe_dev->amp) { ... goto vpbe_fail_amp_register; If I just remove the label vpbe_fail_amp_register, the label names will not make sense any more as the next label is vpbe_fail_sd_register. So I will need to change the name to something different or rename all labels to out1, out2, out3 or err1, err2, err3, or .... Any suggestions?
Hi Peter, 2012/9/12 Peter Senna Tschudin <peter.senna@gmail.com>: > Marcos, > >> Now that you removed this kfree, you could remove this label too. Very >> nice your cleanup :) > Thanks! > >> >>> vpbe_fail_sd_register: >>> kfree(vpbe_dev->encoders); >>> vpbe_fail_v4l2_device: > > The problem removing the label is that it will require some more work > naming the labels. See: > if (!vpbe_dev->amp) { > ... > goto vpbe_fail_amp_register; > > If I just remove the label vpbe_fail_amp_register, the label names > will not make sense any more as the next label is > vpbe_fail_sd_register. So I will need to change the name to something > different or rename all labels to out1, out2, out3 or err1, err2, > err3, or .... I was looking at the code here, but this code is under drivers/media/video/davince/vpbe.c.... Are you using the Linus tree? BTW, this label is only used once. AFAICS, you can GOTO to the next label, vpbe_fail_sd_register in this case, who frees another member of the vpbe_dev. This make sense to you? > Any suggestions? > > -- > Peter
On Wed, Sep 12, 2012 at 05:50:54PM +0200, Peter Senna Tschudin wrote: > Marcos, > > > Now that you removed this kfree, you could remove this label too. Very > > nice your cleanup :) > Thanks! > > > > >> vpbe_fail_sd_register: > >> kfree(vpbe_dev->encoders); > >> vpbe_fail_v4l2_device: > > The problem removing the label is that it will require some more work > naming the labels. See: > if (!vpbe_dev->amp) { > ... > goto vpbe_fail_amp_register; > > If I just remove the label vpbe_fail_amp_register, the label names > will not make sense any more as the next label is > vpbe_fail_sd_register. So I will need to change the name to something > different or rename all labels to out1, out2, out3 or err1, err2, > err3, or .... > > Any suggestions? Labal names should not be numbers because this is not GW-BASIC. The label should reflect what happens on the next line. Labeling the place after the goto location where you started from is always nonsense. regards, dan carpenter -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/platform/davinci/vpbe.c b/drivers/media/platform/davinci/vpbe.c index c4a82a1..1125a87 100644 --- a/drivers/media/platform/davinci/vpbe.c +++ b/drivers/media/platform/davinci/vpbe.c @@ -771,7 +771,6 @@ static int vpbe_initialize(struct device *dev, struct vpbe_device *vpbe_dev) return 0; vpbe_fail_amp_register: - kfree(vpbe_dev->amp); vpbe_fail_sd_register: kfree(vpbe_dev->encoders); vpbe_fail_v4l2_device: