From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757892AbbGQLEB (ORCPT ); Fri, 17 Jul 2015 07:04:01 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:29436 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757590AbbGQLEA (ORCPT ); Fri, 17 Jul 2015 07:04:00 -0400 Date: Fri, 17 Jul 2015 14:03:48 +0300 From: Dan Carpenter To: Sudip Mukherjee Cc: Greg Kroah-Hartman , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 3/6] staging: rtl8188eu: remove goto label Message-ID: <20150717110348.GC5371@mwanda> References: <1437046092-16363-1-git-send-email-sudipm.mukherjee@gmail.com> <1437046092-16363-3-git-send-email-sudipm.mukherjee@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1437046092-16363-3-git-send-email-sudipm.mukherjee@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Source-IP: userv0021.oracle.com [156.151.31.71] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jul 16, 2015 at 04:58:09PM +0530, Sudip Mukherjee wrote: > By checking for the success of kzalloc we were able to remove the goto > label thus making the code more readable. > No... You've just changed error handling to success handling and added some new indent levels and made a tangled spaghetti exit path even more tangled. Spoderman wants to know, "Why u do dis?" It should look like: diff --git a/drivers/staging/rtl8188eu/os_dep/usb_intf.c b/drivers/staging/rtl8188eu/os_dep/usb_intf.c index d0d4335..7617a22 100644 --- a/drivers/staging/rtl8188eu/os_dep/usb_intf.c +++ b/drivers/staging/rtl8188eu/os_dep/usb_intf.c @@ -120,16 +120,13 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf) usb_get_dev(pusbd); - status = _SUCCESS; + return pdvobjpriv; free_dvobj: - if (status != _SUCCESS && pdvobjpriv) { - usb_set_intfdata(usb_intf, NULL); - kfree(pdvobjpriv); - pdvobjpriv = NULL; - } -exit: - return pdvobjpriv; + usb_set_intfdata(usb_intf, NULL); + kfree(pdvobjpriv); + + return NULL; } static void usb_dvobj_deinit(struct usb_interface *usb_intf) See? No indenting, no if statements. Just one statement after another. regards, dan carpenter