diff options
Diffstat (limited to 'package/kernel/mac80211/patches/brcm/320-v4.21-0002-brcmfmac-Remove-recursion-from-firmware-load-error-h.patch')
-rw-r--r-- | package/kernel/mac80211/patches/brcm/320-v4.21-0002-brcmfmac-Remove-recursion-from-firmware-load-error-h.patch | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/package/kernel/mac80211/patches/brcm/320-v4.21-0002-brcmfmac-Remove-recursion-from-firmware-load-error-h.patch b/package/kernel/mac80211/patches/brcm/320-v4.21-0002-brcmfmac-Remove-recursion-from-firmware-load-error-h.patch index f3da1df541..1a4a1ec348 100644 --- a/package/kernel/mac80211/patches/brcm/320-v4.21-0002-brcmfmac-Remove-recursion-from-firmware-load-error-h.patch +++ b/package/kernel/mac80211/patches/brcm/320-v4.21-0002-brcmfmac-Remove-recursion-from-firmware-load-error-h.patch @@ -68,29 +68,30 @@ Signed-off-by: Kalle Valo <kvalo@codeaurora.org> ret = brcmf_fw_complete_request(fw, fwctx); - if (ret < 0) - goto fail; -- + - do { - if (++fwctx->curpos == fwctx->req->n_items) { - ret = 0; - goto done; - } - +- - ret = brcmf_fw_request_next_item(fwctx, false); - } while (ret == -EAGAIN); - - return; -+ while (ret == 0 && ++fwctx->curpos < fwctx->req->n_items) { -+ cur = &fwctx->req->items[fwctx->curpos]; -+ request_firmware(&fw, cur->path, fwctx->dev); -+ ret = brcmf_fw_complete_request(fw, ctx); -+ } - +- -fail: - brcmf_dbg(TRACE, "failed err=%d: dev=%s, fw=%s\n", ret, - dev_name(fwctx->dev), cur->path); - brcmf_fw_free_request(fwctx->req); - fwctx->req = NULL; -done: ++ while (ret == 0 && ++fwctx->curpos < fwctx->req->n_items) { ++ cur = &fwctx->req->items[fwctx->curpos]; ++ request_firmware(&fw, cur->path, fwctx->dev); ++ ret = brcmf_fw_complete_request(fw, ctx); ++ } ++ + if (ret) { + brcmf_dbg(TRACE, "failed err=%d: dev=%s, fw=%s\n", ret, + dev_name(fwctx->dev), cur->path); |