On Tuesday 12 May 2020 10:36:56 CEST Dan Carpenter wrote: > > We need to release the tx_lock on the error path before returning. > > Fixes: d1c015b4ef6f ("staging: wfx: rewrite wfx_hw_scan()") > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > --- > From static analysis. Not tested. > > drivers/staging/wfx/scan.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/staging/wfx/scan.c b/drivers/staging/wfx/scan.c > index 76761e4960dd7..eff1be9fb28f8 100644 > --- a/drivers/staging/wfx/scan.c > +++ b/drivers/staging/wfx/scan.c > @@ -57,8 +57,10 @@ static int send_scan_req(struct wfx_vif *wvif, > wvif->scan_abort = false; > reinit_completion(&wvif->scan_complete); > timeout = hif_scan(wvif, req, start_idx, i - start_idx); > - if (timeout < 0) > + if (timeout < 0) { > + wfx_tx_unlock(wvif->wdev); > return timeout; > + } > ret = wait_for_completion_timeout(&wvif->scan_complete, timeout); > if (req->channels[start_idx]->max_power != wvif->vif->bss_conf.txpower) > hif_set_output_power(wvif, wvif->vif->bss_conf.txpower); > -- > 2.26.2 > > Good catch! Reviewed-by: Jérôme Pouiller <jerome.pouiller@xxxxxxxxxx> -- Jérôme Pouiller