Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 33370038 authored by Larry Finger's avatar Larry Finger Committed by Greg Kroah-Hartman
Browse files

staging: r8188eu: Fix smatch warning in hal/usb_ops_linux.c



Smatch reports the following warning:
drivers/staging/rtl8188eu/hal/usb_ops_linux.c:614 usb_read_port() warn: variable dereferenced before check 'precvbuf' (see line 611)

Fixing this particular warning required some refactoring of the code.

Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent efbff73e
Loading
Loading
Loading
Loading
+48 −48
Original line number Diff line number Diff line
@@ -605,13 +605,18 @@ _func_enter_;
		return _FAIL;
	}

	if (!precvbuf) {
		RT_TRACE(_module_hci_ops_os_c_, _drv_err_,
			 ("usb_read_port:precvbuf==NULL\n"));
		return _FAIL;
	}

	if ((!precvbuf->reuse) || (precvbuf->pskb == NULL)) {
		precvbuf->pskb = skb_dequeue(&precvpriv->free_recv_skb_queue);
		if (NULL != precvbuf->pskb)
			precvbuf->reuse = true;
	}

	if (precvbuf != NULL) {
	rtl8188eu_init_recvbuf(adapter, precvbuf);

	/* re-assign for linux based on skb */
@@ -664,11 +669,6 @@ _func_enter_;
			err, purb->status);
		ret = _FAIL;
	}
	} else {
		RT_TRACE(_module_hci_ops_os_c_, _drv_err_,
			 ("usb_read_port:precvbuf ==NULL\n"));
		ret = _FAIL;
	}

_func_exit_;
	return ret;