staging: ks7010: bail out when registering netdevice fails
authorWolfram Sang <wsa@the-dreams.de>
Fri, 17 Jun 2016 08:46:58 +0000 (10:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 19 Jun 2016 02:45:55 +0000 (19:45 -0700)
There is no need to continue then. Also, this enables us to remove an
ugly static variable.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ks7010/ks7010_sdio.c

index 16b9d76..c3035b8 100644 (file)
@@ -25,8 +25,6 @@
 #define KS7010_IO_BLOCK_SIZE 512
 #define KS7010_MAX_CLOCK 25000000
 
 #define KS7010_IO_BLOCK_SIZE 512
 #define KS7010_MAX_CLOCK 25000000
 
-static int reg_net = 0;
-
 static const struct sdio_device_id ks7010_sdio_ids[] = {
        {SDIO_DEVICE(SDIO_VENDOR_ID_KS_CODE_A, SDIO_DEVICE_ID_KS_7010)},
        {SDIO_DEVICE(SDIO_VENDOR_ID_KS_CODE_B, SDIO_DEVICE_ID_KS_7010)},
 static const struct sdio_device_id ks7010_sdio_ids[] = {
        {SDIO_DEVICE(SDIO_VENDOR_ID_KS_CODE_A, SDIO_DEVICE_ID_KS_7010)},
        {SDIO_DEVICE(SDIO_VENDOR_ID_KS_CODE_B, SDIO_DEVICE_ID_KS_7010)},
@@ -936,8 +934,6 @@ static void ks7010_card_init(struct ks_wlan_private *priv)
        if (priv->dev_state >= DEVICE_STATE_PREINIT) {
                DPRINTK(1, "DEVICE READY!!\n");
                priv->dev_state = DEVICE_STATE_READY;
        if (priv->dev_state >= DEVICE_STATE_PREINIT) {
                DPRINTK(1, "DEVICE READY!!\n");
                priv->dev_state = DEVICE_STATE_READY;
-               reg_net = register_netdev(priv->net_dev);
-               DPRINTK(3, "register_netdev=%d\n", reg_net);
        } else {
                DPRINTK(1, "dev_state=%d\n", priv->dev_state);
        }
        } else {
                DPRINTK(1, "dev_state=%d\n", priv->dev_state);
        }
@@ -1115,6 +1111,10 @@ static int ks7010_sdio_probe(struct sdio_func *func,
        INIT_DELAYED_WORK(&priv->ks_wlan_hw.rw_wq, ks7010_rw_function);
        ks7010_card_init(priv);
 
        INIT_DELAYED_WORK(&priv->ks_wlan_hw.rw_wq, ks7010_rw_function);
        ks7010_card_init(priv);
 
+       ret = register_netdev(priv->net_dev);
+       if (ret)
+               goto error_free_read_buf;
+
        return 0;
 
  error_free_read_buf:
        return 0;
 
  error_free_read_buf:
@@ -1196,9 +1196,7 @@ static void ks7010_sdio_remove(struct sdio_func *func)
                hostif_exit(priv);
                DPRINTK(1, "hostif_exit\n");
 
                hostif_exit(priv);
                DPRINTK(1, "hostif_exit\n");
 
-               if (!reg_net)
-                       unregister_netdev(netdev);
-               DPRINTK(1, "unregister_netdev\n");
+               unregister_netdev(netdev);
 
                trx_device_exit(priv);
                if (priv->ks_wlan_hw.read_buf) {
 
                trx_device_exit(priv);
                if (priv->ks_wlan_hw.read_buf) {