554-ath9k-dynack-move-debug-log-after-buffer-increments.patch 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. From: Lorenzo Bianconi <[email protected]>
  2. Date: Fri, 2 Nov 2018 21:49:56 +0100
  3. Subject: [PATCH] ath9k: dynack: move debug log after buffer increments
  4. Move debug log in ath_dynack_sample_tx_ts and ath_dynack_sample_ack_ts
  5. after timestamp buffer head/tail increments in order to make debugging
  6. more user friendly
  7. Tested-by: Koen Vandeputte <[email protected]>
  8. Signed-off-by: Lorenzo Bianconi <[email protected]>
  9. ---
  10. --- a/drivers/net/wireless/ath/ath9k/dynack.c
  11. +++ b/drivers/net/wireless/ath/ath9k/dynack.c
  12. @@ -171,11 +171,12 @@ static void ath_dynack_compute_to(struct
  13. void ath_dynack_sample_tx_ts(struct ath_hw *ah, struct sk_buff *skb,
  14. struct ath_tx_status *ts)
  15. {
  16. - u8 ridx;
  17. struct ieee80211_hdr *hdr;
  18. struct ath_dynack *da = &ah->dynack;
  19. struct ath_common *common = ath9k_hw_common(ah);
  20. struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
  21. + u32 dur = ts->duration;
  22. + u8 ridx;
  23. if ((info->flags & IEEE80211_TX_CTL_NO_ACK) || !da->enabled)
  24. return;
  25. @@ -203,14 +204,13 @@ void ath_dynack_sample_tx_ts(struct ath_
  26. ridx = ts->ts_rateindex;
  27. da->st_rbf.ts[da->st_rbf.t_rb].tstamp = ts->ts_tstamp;
  28. - da->st_rbf.ts[da->st_rbf.t_rb].dur = ts->duration;
  29. ether_addr_copy(da->st_rbf.addr[da->st_rbf.t_rb].h_dest, hdr->addr1);
  30. ether_addr_copy(da->st_rbf.addr[da->st_rbf.t_rb].h_src, hdr->addr2);
  31. if (!(info->status.rates[ridx].flags & IEEE80211_TX_RC_MCS)) {
  32. - u32 phy, sifs;
  33. const struct ieee80211_rate *rate;
  34. struct ieee80211_tx_rate *rates = info->status.rates;
  35. + u32 phy;
  36. rate = &common->sbands[info->band].bitrates[rates[ridx].idx];
  37. if (info->band == NL80211_BAND_2GHZ &&
  38. @@ -219,19 +219,18 @@ void ath_dynack_sample_tx_ts(struct ath_
  39. else
  40. phy = WLAN_RC_PHY_OFDM;
  41. - sifs = ath_dynack_get_sifs(ah, phy);
  42. - da->st_rbf.ts[da->st_rbf.t_rb].dur -= sifs;
  43. + dur -= ath_dynack_get_sifs(ah, phy);
  44. }
  45. -
  46. - ath_dbg(common, DYNACK, "{%pM} tx sample %u [dur %u][h %u-t %u]\n",
  47. - hdr->addr1, da->st_rbf.ts[da->st_rbf.t_rb].tstamp,
  48. - da->st_rbf.ts[da->st_rbf.t_rb].dur, da->st_rbf.h_rb,
  49. - (da->st_rbf.t_rb + 1) % ATH_DYN_BUF);
  50. + da->st_rbf.ts[da->st_rbf.t_rb].dur = dur;
  51. INCR(da->st_rbf.t_rb, ATH_DYN_BUF);
  52. if (da->st_rbf.t_rb == da->st_rbf.h_rb)
  53. INCR(da->st_rbf.h_rb, ATH_DYN_BUF);
  54. + ath_dbg(common, DYNACK, "{%pM} tx sample %u [dur %u][h %u-t %u]\n",
  55. + hdr->addr1, ts->ts_tstamp, dur, da->st_rbf.h_rb,
  56. + da->st_rbf.t_rb);
  57. +
  58. ath_dynack_compute_to(ah);
  59. spin_unlock_bh(&da->qlock);
  60. @@ -258,14 +257,13 @@ void ath_dynack_sample_ack_ts(struct ath
  61. spin_lock_bh(&da->qlock);
  62. da->ack_rbf.tstamp[da->ack_rbf.t_rb] = ts;
  63. - ath_dbg(common, DYNACK, "rx sample %u [h %u-t %u]\n",
  64. - da->ack_rbf.tstamp[da->ack_rbf.t_rb],
  65. - da->ack_rbf.h_rb, (da->ack_rbf.t_rb + 1) % ATH_DYN_BUF);
  66. -
  67. INCR(da->ack_rbf.t_rb, ATH_DYN_BUF);
  68. if (da->ack_rbf.t_rb == da->ack_rbf.h_rb)
  69. INCR(da->ack_rbf.h_rb, ATH_DYN_BUF);
  70. + ath_dbg(common, DYNACK, "rx sample %u [h %u-t %u]\n",
  71. + ts, da->ack_rbf.h_rb, da->ack_rbf.t_rb);
  72. +
  73. ath_dynack_compute_to(ah);
  74. spin_unlock_bh(&da->qlock);