On Thu, 2009-11-26 at 14:03 +0800, Zhu Yi wrote: > Move the A-MSDU handling code from mac80211 to cfg80211 so that more > drivers can use it. The new created function ieee80211_asmdu_to_8023s > converts an A-MSDU frame to a list of 802.3 frames. > > Signed-off-by: Zhu Yi <yi.zhu@xxxxxxxxx> > --- > include/net/cfg80211.h | 12 +++++ > net/mac80211/rx.c | 107 ++++++++++------------------------------------- > net/wireless/util.c | 105 +++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 140 insertions(+), 84 deletions(-) > > diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h > index 0884b9a..ad31b55 100644 > --- a/include/net/cfg80211.h > +++ b/include/net/cfg80211.h > @@ -1593,6 +1593,18 @@ int ieee80211_data_from_8023(struct sk_buff *skb, u8 *addr, > enum nl80211_iftype iftype, u8 *bssid, bool qos); > > /** > + * ieee80211_asmdu_to_8023s - decode an IEEE 802.11n A-MSDU frame ^ typo > + skb->dev = dev; > + skb_queue_head_init(&frame_list); ^ use __ versions please, no need for locking since it's on stack > + dev->stats.rx_packets++; > + dev->stats.rx_bytes += skb->len; Shouldn't rx_packets be per sub-frame? > + while (!skb_queue_empty(&frame_list)) { > + rx->skb = skb_dequeue(&frame_list); __skb_dequeue > +/** > + * ieee80211_asmdu_to_8023s - decode an IEEE 802.11n A-MSDU frame ^ copy/paste :) Why do you have the kernel-doc twice anyway? > + skb_queue_tail(list, frame); __ > + purge: > + skb_queue_purge(list); __ (does that exist? guess it must?) johannes
Attachment:
signature.asc
Description: This is a digitally signed message part