diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -6001,6 +6001,45 @@ IEEE80211_UNLOCK(ic); } +/* -------------------------------------------------------------------------- */ +/* + * Temporary debugging aid. + */ +void lkpi_sta_dump(struct ieee80211_sta *sta, const char *_f, int _l); + +/* + * Includes parts of lkpi_lsta_dump() so they are unconditional of + * LINUXKPI_DEBUG_80211 or D80211_TRACE_STA. + */ +void +lkpi_sta_dump(struct ieee80211_sta *sta, const char *_f, int _l) +{ + struct lkpi_sta *lsta; + struct ieee80211_node *ni; + + lsta = STA_TO_LSTA(sta); + ni = lsta->ni; + if (ni != NULL) { + struct ieee80211vap *vap; + struct lkpi_vif *lvif; + + vap = ni->ni_vap; + lvif = VAP_TO_LVIF(vap); + + ic_printf(vap->iv_ic, "%s:%d: lvif %p vap %p iv_bss %p lvif_bss %p " + "lvif_bss->ni %p synched %d\n", _f, _l, + lvif, vap, vap->iv_bss, lvif->lvif_bss, + (lvif->lvif_bss != NULL) ? lvif->lvif_bss->ni : NULL, + lvif->lvif_bss_synched); + } + printf("%s:%d lsta %p ni %p sta %p\n", _f, _l, lsta, ni, &lsta->sta); + printf("\ttxq_task txq len %d mtx\n", mbufq_len(&lsta->txq)); + printf("\tkc %p state %d added_to_drv %d in_mgd %d\n", + lsta->kc, lsta->state, lsta->added_to_drv, lsta->in_mgd); + if (ni != NULL) + ieee80211_dump_node(NULL, ni); +} + /* -------------------------------------------------------------------------- */ MODULE_VERSION(linuxkpi_wlan, 1); diff --git a/sys/contrib/dev/iwlwifi/mvm/tx.c b/sys/contrib/dev/iwlwifi/mvm/tx.c --- a/sys/contrib/dev/iwlwifi/mvm/tx.c +++ b/sys/contrib/dev/iwlwifi/mvm/tx.c @@ -1109,6 +1109,10 @@ return 0; } +#if defined(__FreeBSD__) +void lkpi_sta_dump(struct ieee80211_sta *, const char *, int); +#endif + /* * Sets the fields in the Tx cmd that are crypto related. * @@ -1203,6 +1207,7 @@ "skb %p { len %u } info %p sta %p (if you see this please " "report to PR 274382)\n", __func__, __LINE__, fc, tid, txq_id, mvm, skb, skb->len, info, sta); + lkpi_sta_dump(sta, __func__, __LINE__); #endif iwl_trans_free_tx_cmd(mvm->trans, dev_cmd); spin_unlock(&mvmsta->lock);