321-v4.16-0001-brcmfmac-assure-bcdc-dcmd-api-does-not-return-value-.patch 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. From 5242a5444e0b6464d7455beb55d936dd192b5e9d Mon Sep 17 00:00:00 2001
  2. From: Arend Van Spriel <[email protected]>
  3. Date: Mon, 22 Jan 2018 21:46:39 +0100
  4. Subject: [PATCH] brcmfmac: assure bcdc dcmd api does not return value > 0
  5. The protocol layer api defines callbacks for dongle commands.
  6. Although not really well documented these should only return an
  7. error code in case of an error, or 0 upon success. In the bcdc
  8. protocol it can return value above 0 and we carry a fix in the
  9. caller of the protocol layer api. This patch makes it adhere to
  10. the intent of the api as described above.
  11. Reviewed-by: Hante Meuleman <[email protected]>
  12. Reviewed-by: Pieter-Paul Giesberts <[email protected]>
  13. Reviewed-by: Franky Lin <[email protected]>
  14. Signed-off-by: Arend van Spriel <[email protected]>
  15. Signed-off-by: Kalle Valo <[email protected]>
  16. ---
  17. drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c | 6 +++++-
  18. drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.c | 8 +++-----
  19. 2 files changed, 8 insertions(+), 6 deletions(-)
  20. --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c
  21. +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c
  22. @@ -211,6 +211,8 @@ retry:
  23. memcpy(buf, info, len);
  24. }
  25. + ret = 0;
  26. +
  27. /* Check the ERROR flag */
  28. if (flags & BCDC_DCMD_ERROR)
  29. ret = le32_to_cpu(msg->status);
  30. @@ -225,7 +227,7 @@ brcmf_proto_bcdc_set_dcmd(struct brcmf_p
  31. {
  32. struct brcmf_bcdc *bcdc = (struct brcmf_bcdc *)drvr->proto->pd;
  33. struct brcmf_proto_bcdc_dcmd *msg = &bcdc->msg;
  34. - int ret = 0;
  35. + int ret;
  36. u32 flags, id;
  37. brcmf_dbg(BCDC, "Enter, cmd %d len %d\n", cmd, len);
  38. @@ -249,6 +251,8 @@ brcmf_proto_bcdc_set_dcmd(struct brcmf_p
  39. goto done;
  40. }
  41. + ret = 0;
  42. +
  43. /* Check the ERROR flag */
  44. if (flags & BCDC_DCMD_ERROR)
  45. ret = le32_to_cpu(msg->status);
  46. --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.c
  47. +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.c
  48. @@ -121,11 +121,9 @@ brcmf_fil_cmd_data(struct brcmf_if *ifp,
  49. else
  50. err = brcmf_proto_query_dcmd(drvr, ifp->ifidx, cmd, data, len);
  51. - if (err >= 0)
  52. - return 0;
  53. -
  54. - brcmf_dbg(FIL, "Failed: %s (%d)\n",
  55. - brcmf_fil_get_errstr((u32)(-err)), err);
  56. + if (err)
  57. + brcmf_dbg(FIL, "Failed: %s (%d)\n",
  58. + brcmf_fil_get_errstr((u32)(-err)), err);
  59. return err;
  60. }