From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751364AbdIOHwT (ORCPT ); Fri, 15 Sep 2017 03:52:19 -0400 Received: from mout.web.de ([212.227.17.11]:54891 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750838AbdIOHwR (ORCPT ); Fri, 15 Sep 2017 03:52:17 -0400 Subject: [PATCH 4/9] [media] tm6000: One function call less in tm6000_usb_probe() after error detection From: SF Markus Elfring To: linux-media@vger.kernel.org, Andi Shyti , Andrew Morton , Arvind Yadav , Bhumika Goyal , Christophe Jaillet , =?UTF-8?Q?David_H=c3=a4rdeman?= , Hans Verkuil , Laurent Pinchart , Masahiro Yamada , Mauro Carvalho Chehab , Sakari Ailus , Santosh Kumar Singh , Sean Young , Wei Yongjun Cc: LKML , kernel-janitors@vger.kernel.org References: <2aade468-5dfd-76ee-f59f-c25864930f61@users.sourceforge.net> Message-ID: <66140cb8-68e4-b891-2313-3c07e54ab3e2@users.sourceforge.net> Date: Fri, 15 Sep 2017 09:51:49 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <2aade468-5dfd-76ee-f59f-c25864930f61@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:MMGn5a7+a4uSSGvV30Ly4Z89WbnlrCUdFEwHt6WOd/OkNcyPdEg x1Kshwow/ECAzNeZgUwgGVAowEwL8aAfk2RHITVnI2zGhgxmtldw4L8tqYWxYEvxO+P07Tc 614DRI4jKos3O69thc3aGNQbKlj5gxRDOjITe+gG6mEMNHzsFFQ4BPdgaa+OHMQZmnLSZDu tgG5QBtnLpXVWeVTLn1KA== X-UI-Out-Filterresults: notjunk:1;V01:K0:c83eEfkKqPY=:owoMbrZmr/IPEu7cKwYZTw p4bZy4Mpne2BYs4X7Zi/MwjxjhftteNFmqIzA/ZjYHYvumBmNwt+9PonERVwpZbZPKqfjBe4k jSY0+ZuZNKvgVdPGLDqkQWXd+Ng6qLnPJZgzj0SV+mXYImqNpSS8AtgMJebqnP6njrUUHsWs2 rfNOsHdWG2qUilWICz7ORlyi3viGo0G5/f1Nxmxl0t2mbThfuPOY5BkE8V/739idKymdCTLdQ c2wThF3wbO9qwiGtAFjcxojT/hz0171fCSSQAYzV9KheWoZYgVlQaCNUVncIZ+JH36HFpPh3V 50UtumIcNHKlp82iQjjTIGL9btXYVAeqIM+kpc+HPBACC+CMsFjByiA5nPL7heP3nxcPzwf3K LDwSqkwTgavN0BVUgLiRCIfaqhw/DMZcmXeO03z0FNbj6CbgxfwLp3TCmkuyqn6YneEoRMj+n GhJAxh8eLW8eU74kf0l1fj8AablsaUDv+4tdOLwjhzsBbSLCD4PETXuJmA7muYiWuCB2ogRQi dhtGra63FBDJOpd1YSdofsOO3KShaJXzYEXrC22VZtg6ZhHXjzUQMJv8OKmsdUHiREd+9FgyC TDpMwZ2uIzv2tSkjt2X0LOxCJbBQl2CED1S4bMMpkeWM3Xqau0qgJKpN6NAJShosSCbtVDEum Z1E/V+RmY+1IzAyLlfV5Pk3CRkBWu6q007IsdnGtwSwlcKGv+l1yAqSUsHBiPbKzlP1TmEiDP fP/YVNGOmg7nAfBnJK3uE2nkuBLEUtg4QgOI/ZbXT5hgTuGIkep2SLKHjAn2BtnkgHBA8ZYl9 tKAvMzF/gmt0ZKpPXrcTzLuxxt53wtQdxr0+RgtxFhZhhrD4B0= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Thu, 14 Sep 2017 16:11:55 +0200 * Adjust jump targets so that the function "kfree" will be always called with a non-null pointer. * Delete an initialisation for the local variable "dev" which became unnecessary with this refactoring. Signed-off-by: Markus Elfring --- drivers/media/usb/tm6000/tm6000-cards.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/media/usb/tm6000/tm6000-cards.c b/drivers/media/usb/tm6000/tm6000-cards.c index e18632056976..77347541904d 100644 --- a/drivers/media/usb/tm6000/tm6000-cards.c +++ b/drivers/media/usb/tm6000/tm6000-cards.c @@ -1184,7 +1184,7 @@ static int tm6000_usb_probe(struct usb_interface *interface, const struct usb_device_id *id) { struct usb_device *usbdev; - struct tm6000_core *dev = NULL; + struct tm6000_core *dev; int i, rc = 0; int nr = 0; char *speed; @@ -1194,7 +1194,7 @@ static int tm6000_usb_probe(struct usb_interface *interface, /* Selects the proper interface */ rc = usb_set_interface(usbdev, 0, 1); if (rc < 0) - goto err; + goto report_failure; /* Check to see next free device and mark as used */ nr = find_first_zero_bit(&tm6000_devused, TM6000_MAXBOARDS); @@ -1312,8 +1312,7 @@ static int tm6000_usb_probe(struct usb_interface *interface, if (!dev->isoc_in.endp) { printk(KERN_ERR "tm6000: probing error: no IN ISOC endpoint!\n"); rc = -ENODEV; - - goto err; + goto free_device; } /* save our data pointer in this interface device */ @@ -1323,16 +1322,16 @@ static int tm6000_usb_probe(struct usb_interface *interface, rc = tm6000_init_dev(dev); if (rc < 0) - goto err; + goto free_device; return 0; -err: +free_device: + kfree(dev); +report_failure: printk(KERN_ERR "tm6000: Error %d while registering\n", rc); clear_bit(nr, &tm6000_devused); - - kfree(dev); put_device: usb_put_dev(usbdev); return rc; -- 2.14.1