Search Linux Wireless

Re: ath: DMA failed to stop in 10 ms AR_CR=0x00000024 AR_DIAG_SW=0x02000020 DMADBG_7=0x00008040

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> /home/kernel/linux-next/drivers/net/wireless/ath/ath9k/ath9k.o...done.
> (gdb) l *(ath_tx_start+0x284)
> 0xcad4 is in ath_tx_start (drivers/net/wireless/ath/ath9k/xmit.c:1878).
> 1873                    ieee80211_is_data_qos(hdr->frame_control)) {
> 1874                    tidno = ieee80211_get_qos_ctl(hdr)[0] &
> 1875                            IEEE80211_QOS_CTL_TID_MASK;
> 1876                    tid = ATH_AN_2_TID(txctl->an, tidno);
> 1877
> 1878                    WARN_ON(tid->ac->txq != txctl->txq);
> 1879            }
> 1880
> 1881            if ((tx_info->flags & IEEE80211_TX_CTL_AMPDU) && tid) {
> 1882                    /*
> (gdb

please check with the attached debug patch if tid is 'NULL'


its my theory that tid is not initialized in ath_tx_node_init just after resume.
during suspend ath9k_sta_remove may be called
ieee80211_suspend -> drv_sta_state ->
drv_sta_remove->ath9k_sta_remove->ath_node_detach->ath_tx_node_cleanup

during resume

ieee80211_resume ->
ieee80211_reconfig->drv_sta_state->ath9k_sta_add->ath_node_attach->ath_tx_node_init

now sta.ht_cap.ht_supported should be true. it will be set to true in
assoc_sucess path and then sta_add is called.

let me see if i had missed something or my analysis itself is wrong.

>



-- 
thanks,
shafi
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 834e6bc..eb22156 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1875,6 +1875,12 @@ static void ath_tx_start_dma(struct ath_softc *sc, struct sk_buff *skb,
 			IEEE80211_QOS_CTL_TID_MASK;
 		tid = ATH_AN_2_TID(txctl->an, tidno);
 
+		if (!tid) {
+			printk("\ntid is NULL!!!");
+			return;
+		}
+
+
 		WARN_ON(tid->ac->txq != txctl->txq);
 	}
 

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux