Search Linux Wireless

[RFC]: ath5k: enable TXOK IRQ

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

 



I tried to use ath5k in AP mode with hostapd, but hostapd never
added the authenticated and associated stations to the kernel.
The reason is that ath5k didn't invoke the tx tasklet, so it
did not call the ieee80211_tx_status() function and userspace
didn't receive the radiotap message indicating success.

The root cause appears to be that the TXOK interrupt is not
enabled, so the tasklet is never scheduled. I'm not sure whether
TXOK is really the correct one to handle ! IEEE80211_TX_CTL_NO_ACK,
but it fixes the problem for me.


commit 5ecbb104a7202a6ed9bcfa8b8ef46474d1003600
Author: Patrick McHardy <kaber@xxxxxxxxx>
Date:   Tue Dec 9 21:54:51 2008 +0100

    ath5k: enable TXOK IRQ
    
    Without the IRQ, the tx tasklet is not scheduled, which is necessary
    to invoke ieee80211_tx_status() to notify userspace of successfully
    sent frames.
    
    Signed-off-by: Patrick McHardy <kaber@xxxxxxxxx>

diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c
index 940c724..291a334 100644
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -1348,7 +1348,8 @@ ath5k_txq_setup(struct ath5k_softc *sc,
 	 * up in which case the top half of the kernel may backup
 	 * due to a lack of tx descriptors.
 	 */
-	qi.tqi_flags = AR5K_TXQ_FLAG_TXEOLINT_ENABLE |
+	qi.tqi_flags = AR5K_TXQ_FLAG_TXOKINT_ENABLE |
+				AR5K_TXQ_FLAG_TXEOLINT_ENABLE |
 				AR5K_TXQ_FLAG_TXDESCINT_ENABLE;
 	qnum = ath5k_hw_setup_tx_queue(ah, qtype, &qi);
 	if (qnum < 0) {

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux