staging: wilc1000: fix static checker warning to unlock mutex in wilc_deinit()
authorAjay Singh <ajay.kathat@microchip.com>
Thu, 5 Jul 2018 09:22:35 +0000 (14:52 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Jul 2018 15:37:31 +0000 (17:37 +0200)
Fix for static checker warning inconsistent returns of
'hif_deinit_lock'(more details [1]).

"drivers/staging/wilc1000/host_interface.c:3390 wilc_deinit()
              warn: inconsistent returns 'hif_deinit_lock'."

Fixes: ff52a57a7a42 ("staging: wilc1000: move the allocation of cmd out
of wilc_enqueue_cmd()")

[1]. https://www.spinics.net/lists/linux-driver-devel/msg114216.html

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wilc1000/host_interface.c

index 52c0c10663750fd342b93e0d10115f2ddc28914e..918d06e8cd34c24e673bf73ef20ba261273c1099 100644 (file)
@@ -3370,15 +3370,15 @@ int wilc_deinit(struct wilc_vif *vif)
                struct host_if_msg *msg;
 
                msg = wilc_alloc_work(vif, handle_hif_exit_work, true);
-               if (IS_ERR(msg))
-                       return PTR_ERR(msg);
-
-               result = wilc_enqueue_work(msg);
-               if (result)
-                       netdev_err(vif->ndev, "deinit : Error(%d)\n", result);
-               else
-                       wait_for_completion(&msg->work_comp);
-               kfree(msg);
+               if (!IS_ERR(msg)) {
+                       result = wilc_enqueue_work(msg);
+                       if (result)
+                               netdev_err(vif->ndev, "deinit : Error(%d)\n",
+                                          result);
+                       else
+                               wait_for_completion(&msg->work_comp);
+                       kfree(msg);
+               }
                destroy_workqueue(hif_workqueue);
        }