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 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel