aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2500usb.c
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2008-01-10 16:02:44 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:09:47 -0500
commit40561b8426c27f187e2ae496ed603e7c4e3ab818 (patch)
tree8aa31c5aca687b58590dfe2ba5a5aae9d44b5217 /drivers/net/wireless/rt2x00/rt2500usb.c
parentdd0d43ea0bbd4c4554b13d4a5d282f9c4d1b5591 (diff)
rt2x00: Data and desc pointer initialization
rt2500usb and rt73usb data and desc pointer initialization was incorrect because it was using uninitialized variables to determine the length. In addition rt2500usb used skb_pull and removed the ieee80211 from each received frame instead of using skb_trim to remove the device descriptor from the frame. Finally this also fixes the descriptor override when 4 byte aligning occured. We still need a completely valid descriptor when using the TX/RX dumping capabilities in debugfs. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2500usb.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt2500usb.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
index 1933113d7baf..86ded4066f5b 100644
--- a/drivers/net/wireless/rt2x00/rt2500usb.c
+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
@@ -1140,15 +1140,12 @@ static void rt2500usb_fill_rxdone(struct data_entry *entry,
1140 desc->my_bss = !!rt2x00_get_field32(word0, RXD_W0_MY_BSS); 1140 desc->my_bss = !!rt2x00_get_field32(word0, RXD_W0_MY_BSS);
1141 1141
1142 /* 1142 /*
1143 * Trim the skb to clear the descriptor area.
1144 */
1145 skb_pull(entry->skb, entry->ring->desc_size);
1146
1147 /*
1148 * Set descriptor and data pointer. 1143 * Set descriptor and data pointer.
1149 */ 1144 */
1150 skbdesc->desc = entry->skb->data + skbdesc->data_len; 1145 skbdesc->desc = entry->skb->data + desc->size;
1146 skbdesc->desc_len = entry->ring->desc_size;
1151 skbdesc->data = entry->skb->data; 1147 skbdesc->data = entry->skb->data;
1148 skbdesc->data_len = desc->size;
1152} 1149}
1153 1150
1154/* 1151/*