Return an error status instead of the struct adapter that was allocated
and filled. This is more useful for the probe function, who calls
rtw_usb_if1_init.

Signed-off-by: Martin Kaiser <mar...@kaiser.cx>
---
 drivers/staging/rtl8188eu/os_dep/usb_intf.c | 28 ++++++++++-----------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/rtl8188eu/os_dep/usb_intf.c 
b/drivers/staging/rtl8188eu/os_dep/usb_intf.c
index 71ef7941f688..3a970d67aa8c 100644
--- a/drivers/staging/rtl8188eu/os_dep/usb_intf.c
+++ b/drivers/staging/rtl8188eu/os_dep/usb_intf.c
@@ -322,17 +322,17 @@ static int rtw_resume(struct usb_interface *pusb_intf)
  *        We accept the new device by returning 0.
  */
 
-static struct adapter *rtw_usb_if1_init(struct usb_interface *pusb_intf)
+static int rtw_usb_if1_init(struct usb_interface *pusb_intf)
 {
        struct dvobj_priv *dvobj = usb_get_intfdata(pusb_intf);
        struct adapter *padapter;
        struct net_device *pnetdev;
        struct net_device *pmondev;
-       int status = _FAIL;
+       int err = 0;
 
        pnetdev = rtw_init_netdev();
        if (!pnetdev)
-               return NULL;
+               return -ENOMEM;
        SET_NETDEV_DEV(pnetdev, dvobj_to_dev(dvobj));
 
        padapter = netdev_priv(pnetdev);
@@ -352,6 +352,7 @@ static struct adapter *rtw_usb_if1_init(struct 
usb_interface *pusb_intf)
        padapter->HalData = kzalloc(sizeof(struct hal_data_8188e), GFP_KERNEL);
        if (!padapter->HalData) {
                DBG_88E("Failed to allocate memory for HAL data\n");
+               err = -ENOMEM;
                goto free_adapter;
        }
 
@@ -368,6 +369,7 @@ static struct adapter *rtw_usb_if1_init(struct 
usb_interface *pusb_intf)
        if (rtw_init_drv_sw(padapter) == _FAIL) {
                RT_TRACE(_module_hci_intfs_c_, _drv_err_,
                         ("Initialize driver software resource Failed!\n"));
+               err = -ENOMEM;
                goto free_hal_data;
        }
 
@@ -397,7 +399,8 @@ static struct adapter *rtw_usb_if1_init(struct 
usb_interface *pusb_intf)
                 pnetdev->dev_addr);
 
        /* step 6. Tell the network stack we exist */
-       if (register_netdev(pnetdev) != 0) {
+       err = register_netdev(pnetdev);
+       if (err) {
                RT_TRACE(_module_hci_intfs_c_, _drv_err_, ("register_netdev() 
failed\n"));
                goto free_hal_data;
        }
@@ -409,17 +412,13 @@ static struct adapter *rtw_usb_if1_init(struct 
usb_interface *pusb_intf)
                , padapter->hw_init_completed
        );
 
-       status = _SUCCESS;
+       return 0;
 
 free_hal_data:
-       if (status != _SUCCESS)
-               kfree(padapter->HalData);
+       kfree(padapter->HalData);
 free_adapter:
-       if (status != _SUCCESS) {
-               free_netdev(pnetdev);
-               padapter = NULL;
-       }
-       return padapter;
+       free_netdev(pnetdev);
+       return err;
 }
 
 static void rtw_usb_if1_deinit(struct adapter *if1)
@@ -458,10 +457,11 @@ static int rtw_drv_init(struct usb_interface *pusb_intf, 
const struct usb_device
                return err;
        }
 
-       if (!rtw_usb_if1_init(pusb_intf)) {
+       err = rtw_usb_if1_init(pusb_intf);
+       if (err) {
                pr_debug("rtw_usb_if1_init failed\n");
                usb_dvobj_deinit(pusb_intf);
-               return -ENODEV;
+               return err;
        }
 
        return 0;
-- 
2.20.1

Reply via email to