Re: [RFC 1/2] wireless: add ieee80211_asmdu_to_8023s

Johannes Berg
2009-11-26T09:49:59Z

[-- Attachment #1: Type: text/plain, Size: 1638 bytes --]

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@intel.com>
> ---
> 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?)