rt2x00: Fix queue_idx initialization
authorIvo van Doorn <ivdoorn@gmail.com>
Thu, 10 Jan 2008 21:40:13 +0000 (22:40 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 23:09:48 +0000 (15:09 -0800)
For TX rings the queue_idx should start at
IEEE80211_TX_QUEUE_DATA0 and for each followup
ring this index needs to be increased.

For the RX ring the queue_idx should be set
to 0. We don't need to initialize the tx_params.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2x00dev.c

index 72cfe6f..c4be2ac 100644 (file)
@@ -1239,11 +1239,16 @@ static int rt2x00lib_alloc_rings(struct rt2x00_dev *rt2x00dev)
 
        /*
         * Initialize ring parameters.
-        * cw_min: 2^5 = 32.
-        * cw_max: 2^10 = 1024.
+        * RX: queue_idx = 0
+        * TX: queue_idx = IEEE80211_TX_QUEUE_DATA0 + index
+        * TX: cw_min: 2^5 = 32.
+        * TX: cw_max: 2^10 = 1024.
         */
-       index = 0;
-       ring_for_each(rt2x00dev, ring) {
+       rt2x00dev->rx->rt2x00dev = rt2x00dev;
+       rt2x00dev->rx->queue_idx = 0;
+
+       index = IEEE80211_TX_QUEUE_DATA0;
+       txring_for_each(rt2x00dev, ring) {
                ring->rt2x00dev = rt2x00dev;
                ring->queue_idx = index++;
                ring->tx_params.aifs = 2;