if (!pdev) {
                        pr_debug("%s: can't alloc gpio dev\n", DRIVER_NAME);
                        status = -ENOMEM;
+                       goto err;
                }
 
                /* more driver model init */
                                dev_dbg(&twl->client->dev,
                                                "can't create keypad dev, %d\n",
                                                status);
+                               goto err;
                        }
                } else {
                        pr_debug("%s: can't alloc keypad dev\n", DRIVER_NAME);
                                dev_dbg(&twl->client->dev,
                                                "can't create madc dev, %d\n",
                                                status);
+                               goto err;
                        }
                } else {
                        pr_debug("%s: can't alloc madc dev\n", DRIVER_NAME);
                                dev_dbg(&twl->client->dev,
                                                "can't create rtc dev, %d\n",
                                                status);
+                               goto err;
                        }
                } else {
                        pr_debug("%s: can't alloc rtc dev\n", DRIVER_NAME);
                } else {
                        pr_debug("%s: can't alloc usb dev\n", DRIVER_NAME);
                        status = -ENOMEM;
-                       goto err;
                }
        }