diff mbox series

brcmfmac: Fix fallback logic to use firmware's canonical path

Message ID 20210812170300.1047330-1-trix@redhat.com
State New
Headers show
Series brcmfmac: Fix fallback logic to use firmware's canonical path | expand

Commit Message

Tom Rix Aug. 12, 2021, 5:03 p.m. UTC
From: Tom Rix <trix@redhat.com>

Static analysis reports this problem
firmware.c:709:6: warning: Branch condition evaluates to a garbage value
        if (ret) {
            ^~~

In brcmf_fw_get_firmwares(), ret is only set if the alt_path control
flow is taken.  Initialize ret to -1, so the canonical path is taken
if alt_path is not.

Fixes: 5ff013914c62 ("brcmfmac: firmware: Allow per-board firmware binaries")
Signed-off-by: Tom Rix <trix@redhat.com>
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Linus Walleij Aug. 13, 2021, 8:55 a.m. UTC | #1
On Thu, Aug 12, 2021 at 7:03 PM <trix@redhat.com> wrote:

> From: Tom Rix <trix@redhat.com>
>
> Static analysis reports this problem
> firmware.c:709:6: warning: Branch condition evaluates to a garbage value
>         if (ret) {
>             ^~~
>
> In brcmf_fw_get_firmwares(), ret is only set if the alt_path control
> flow is taken.  Initialize ret to -1, so the canonical path is taken
> if alt_path is not.
>
> Fixes: 5ff013914c62 ("brcmfmac: firmware: Allow per-board firmware binaries")
> Signed-off-by: Tom Rix <trix@redhat.com>

Thanks!

But we are working on a more generic solution to this and other
problems in a patch that Dmitry has asked Kalle to merge.
https://lore.kernel.org/linux-wireless/20210808180510.8753-1-digetx@gmail.com/

Yours,
Linus Walleij
diff mbox series

Patch

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
index adfdfc654b104..e11f1a3a38a59 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
@@ -680,7 +680,7 @@  int brcmf_fw_get_firmwares(struct device *dev, struct brcmf_fw_request *req,
 	struct brcmf_fw_item *first = &req->items[0];
 	struct brcmf_fw *fwctx;
 	char *alt_path;
-	int ret;
+	int ret = -1;
 
 	brcmf_dbg(TRACE, "enter: dev=%s\n", dev_name(dev));
 	if (!fw_cb)