735-v5.14-08-net-dsa-qca8k-handle-error-from-qca8k_busy_wait.patch 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. From b7c818d194927bdc60ed15db55bb8654496a36b7 Mon Sep 17 00:00:00 2001
  2. From: Ansuel Smith <[email protected]>
  3. Date: Fri, 14 May 2021 22:59:58 +0200
  4. Subject: [PATCH] net: dsa: qca8k: handle error from qca8k_busy_wait
  5. Propagate errors from qca8k_busy_wait instead of hardcoding return
  6. value.
  7. Signed-off-by: Ansuel Smith <[email protected]>
  8. Reviewed-by: Andrew Lunn <[email protected]>
  9. Signed-off-by: David S. Miller <[email protected]>
  10. ---
  11. drivers/net/dsa/qca8k.c | 21 +++++++++++++--------
  12. 1 file changed, 13 insertions(+), 8 deletions(-)
  13. --- a/drivers/net/dsa/qca8k.c
  14. +++ b/drivers/net/dsa/qca8k.c
  15. @@ -388,8 +388,9 @@ qca8k_fdb_access(struct qca8k_priv *priv
  16. return ret;
  17. /* wait for completion */
  18. - if (qca8k_busy_wait(priv, QCA8K_REG_ATU_FUNC, QCA8K_ATU_FUNC_BUSY))
  19. - return -1;
  20. + ret = qca8k_busy_wait(priv, QCA8K_REG_ATU_FUNC, QCA8K_ATU_FUNC_BUSY);
  21. + if (ret)
  22. + return ret;
  23. /* Check for table full violation when adding an entry */
  24. if (cmd == QCA8K_FDB_LOAD) {
  25. @@ -468,8 +469,9 @@ qca8k_vlan_access(struct qca8k_priv *pri
  26. return ret;
  27. /* wait for completion */
  28. - if (qca8k_busy_wait(priv, QCA8K_REG_VTU_FUNC1, QCA8K_VTU_FUNC1_BUSY))
  29. - return -ETIMEDOUT;
  30. + ret = qca8k_busy_wait(priv, QCA8K_REG_VTU_FUNC1, QCA8K_VTU_FUNC1_BUSY);
  31. + if (ret)
  32. + return ret;
  33. /* Check for table full violation when adding an entry */
  34. if (cmd == QCA8K_VLAN_LOAD) {
  35. @@ -580,7 +582,9 @@ qca8k_mib_init(struct qca8k_priv *priv)
  36. if (ret)
  37. goto exit;
  38. - qca8k_busy_wait(priv, QCA8K_REG_MIB, QCA8K_MIB_BUSY);
  39. + ret = qca8k_busy_wait(priv, QCA8K_REG_MIB, QCA8K_MIB_BUSY);
  40. + if (ret)
  41. + goto exit;
  42. ret = qca8k_reg_set(priv, QCA8K_REG_MIB, QCA8K_MIB_CPU_KEEP);
  43. if (ret)
  44. @@ -670,9 +674,10 @@ qca8k_mdio_read(struct qca8k_priv *priv,
  45. if (ret)
  46. return ret;
  47. - if (qca8k_busy_wait(priv, QCA8K_MDIO_MASTER_CTRL,
  48. - QCA8K_MDIO_MASTER_BUSY))
  49. - return -ETIMEDOUT;
  50. + ret = qca8k_busy_wait(priv, QCA8K_MDIO_MASTER_CTRL,
  51. + QCA8K_MDIO_MASTER_BUSY);
  52. + if (ret)
  53. + return ret;
  54. val = qca8k_read(priv, QCA8K_MDIO_MASTER_CTRL);
  55. if (val < 0)