rt2x00: Fix frame dumping for USB devices.
authorGertjan van Wingerde <gwingerde@gmail.com>
Tue, 29 Jun 2010 19:40:02 +0000 (21:40 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 30 Jun 2010 19:00:49 +0000 (15:00 -0400)
We forgot to clear the SKBDESC_DESC_IN_SKB when the descriptor was removed
from the front of the skb.

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

index b45bc24c3daeb0ff239b8c14bcc67e7450b04f5b..97597543c70b9823f132e1515a2d86269be0b408 100644 (file)
@@ -171,6 +171,7 @@ static void rt2x00usb_interrupt_txdone(struct urb *urb)
 {
        struct queue_entry *entry = (struct queue_entry *)urb->context;
        struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
+       struct skb_frame_desc *skbdesc = get_skb_frame_desc(entry->skb);
        struct txdone_entry_desc txdesc;
 
        if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags) ||
@@ -182,6 +183,11 @@ static void rt2x00usb_interrupt_txdone(struct urb *urb)
         */
        skb_pull(entry->skb, entry->queue->desc_size);
 
+       /*
+        * Signal that the TX descriptor is no longer in the skb.
+        */
+       skbdesc->flags &= ~SKBDESC_DESC_IN_SKB;
+
        /*
         * Obtain the status about this packet.
         * Note that when the status is 0 it does not mean the