adm8211: Use ieee80211_*_queue functions

This patch fixes the adm8211 to use the ieee80211_*_queue instead of 
netif_*_queue functions to stop/wake the queue. Otherwise, the wireless stack 
happily overflows our tx ring. It also simplifies the some flag setting 
related to TX queue handling.

Signed-off-by: Michael Wu <[EMAIL PROTECTED]>

---

 drivers/net/wireless/d80211/adm8211/adm8211.c |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/drivers/net/wireless/d80211/adm8211/adm8211.c 
b/drivers/net/wireless/d80211/adm8211/adm8211.c
index 748eb26..339b69c 100644
--- a/drivers/net/wireless/d80211/adm8211/adm8211.c
+++ b/drivers/net/wireless/d80211/adm8211/adm8211.c
@@ -452,7 +452,7 @@ static void adm8211_interrupt_tci(struct
        }
 
        if (priv->cur_tx - dirty_tx < priv->tx_ring_size - 2)
-               netif_wake_queue(dev);
+               ieee80211_wake_queue(dev, 0);
 
        priv->dirty_tx = dirty_tx;
        spin_unlock(&priv->lock);
@@ -1765,17 +1765,13 @@ static void adm8211_tx_raw(struct net_de
 
        spin_lock_irqsave(&priv->lock, flags);
 
-       if (priv->cur_tx - priv->dirty_tx < priv->tx_ring_size / 2)
+       if (priv->cur_tx - priv->dirty_tx == priv->tx_ring_size / 2)
                flag = TDES1_CONTROL_IC | TDES1_CONTROL_LS | TDES1_CONTROL_FS;
-       else if (priv->cur_tx - priv->dirty_tx == priv->tx_ring_size / 2)
-               flag = TDES1_CONTROL_IC | TDES1_CONTROL_LS | TDES1_CONTROL_FS;
-       else if (priv->cur_tx - priv->dirty_tx < priv->tx_ring_size - 2)
+       else
                flag = TDES1_CONTROL_LS | TDES1_CONTROL_FS;
-       else {
-               flag = TDES1_CONTROL_IC | TDES1_CONTROL_LS | TDES1_CONTROL_FS;
-               printk(KERN_DEBUG "%s: Yikes, this shouldn't happen!\n", 
dev->name);
-               netif_stop_queue(dev);
-       }
+
+       if (priv->cur_tx - priv->dirty_tx == priv->tx_ring_size - 2)
+               ieee80211_stop_queue(dev, 0);
 
        entry = priv->cur_tx % priv->tx_ring_size;
 

Attachment: pgpOOwNSetEDe.pgp
Description: PGP signature

Reply via email to