From: Jérôme Pouiller <jerome.pouiller@xxxxxxxxxx> The code to execute on end of the function is the same whatever the command replies or not. Signed-off-by: Jérôme Pouiller <jerome.pouiller@xxxxxxxxxx> --- drivers/staging/wfx/hif_tx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/wfx/hif_tx.c b/drivers/staging/wfx/hif_tx.c index 236f9d62e3a9..0b1ed12c0e83 100644 --- a/drivers/staging/wfx/hif_tx.c +++ b/drivers/staging/wfx/hif_tx.c @@ -74,9 +74,8 @@ int wfx_cmd_send(struct wfx_dev *wdev, struct wfx_hif_msg *request, if (no_reply) { /* Chip won't reply. Give enough time to the wq to send the buffer. */ msleep(100); - wdev->hif_cmd.buf_send = NULL; - mutex_unlock(&wdev->hif_cmd.lock); - return 0; + ret = 0; + goto end; } if (wdev->poll_irq) @@ -98,6 +97,7 @@ int wfx_cmd_send(struct wfx_dev *wdev, struct wfx_hif_msg *request, ret = wdev->hif_cmd.ret; } +end: wdev->hif_cmd.buf_send = NULL; mutex_unlock(&wdev->hif_cmd.lock); -- 2.34.1