-diff -Nur linux-2.6.29-org/drivers/net/wireless/rt2x00/rt2x00queue.c linux-2.6.29/drivers/net/wireless/rt2x00/rt2x00queue.c
---- linux-2.6.29-org/drivers/net/wireless/rt2x00/rt2x00queue.c 2009-03-24 00:12:14.000000000 +0100
-+++ linux-2.6.29/drivers/net/wireless/rt2x00/rt2x00queue.c 2009-04-16 17:08:39.000000000 +0200
-@@ -105,6 +105,14 @@
- */
- skb_push(skb, rt2x00dev->hw->extra_tx_headroom);
-
-+ if( (int)skb->data & 3 ) {
-+ int align = (int)skb->data & 3;
-+ int len = skb->len;
-+ skb_push(skb, align);
-+ memmove(skb->data, skb->data+align, len);
-+ skb_trim(skb, len);
-+ }
-+
- skbdesc->skb_dma =
- dma_map_single(rt2x00dev->dev, skb->data, skb->len, DMA_TO_DEVICE);
-