Преглед на файлове

rt2x00: Modify rt2x00queue_remove_l2pad to make skb->data two-byte alignment

When send out skb data to mac80211, orignal code will cause mac80211
unaligned access, so modify code to make mac80211 can natural access.

Signed-off-by: RA-Jay Hung <jay_hung@ralinktech.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
RA-Jay Hung преди 14 години
родител
ревизия
387e688464
променени са 1 файла, в които са добавени 4 реда и са изтрити 2 реда
  1. 4 2
      drivers/net/wireless/rt2x00/rt2x00queue.c

+ 4 - 2
drivers/net/wireless/rt2x00/rt2x00queue.c

@@ -204,8 +204,10 @@ void rt2x00queue_remove_l2pad(struct sk_buff *skb, unsigned int header_length)
 	if (!l2pad)
 		return;
 
-	memmove(skb->data + l2pad, skb->data, header_length);
-	skb_pull(skb, l2pad);
+	memmove(skb->data + header_length, skb->data + header_length + l2pad,
+				skb->len - header_length - l2pad);
+
+	skb_trim(skb, skb->len - l2pad);
 }
 
 static void rt2x00queue_create_tx_descriptor_seq(struct queue_entry *entry,