On Thu, 2009-10-29 at 09:18 -0700, Luis R. Rodriguez wrote: > On Wed, Oct 28, 2009 at 1:13 PM, Reinette Chatre > <reinette.chatre@xxxxxxxxx> wrote: > > From: Zhu Yi <yi.zhu@xxxxxxxxx> > > > > This fixed a BUG_ON in __skb_trim() when paged rx is used in > > iwlwifi driver. Yes, the whole mac80211 stack doesn't support > > paged SKB yet. But let's start the work slowly from small > > code snippets. > > So I just noticed ar9271 segments some frames upon RX. The current > implementation approach is to stitch them back together through a > newly allocated skb after all segments are received. How does iwlwifi > ues paged skbs? How do you keep track of which page is for what frame? > > Can you elaborate on the planned paged skb support on mac80211 you > have. Do you have any queued up patches I can look at this point? Look at commit 924e103a665300f4f25538889bdd37b256d8f787 -- the magic is in this bit of code: + /* mac80211 currently doesn't support paged SKB. Convert it to + * linear SKB for management frame and data frame requires + * software decryption or software defragementation. */ + if (ieee80211_is_mgmt(hdr->frame_control) || + ieee80211_has_protected(hdr->frame_control) || + ieee80211_has_morefrags(hdr->frame_control) || + le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_FRAG) + ret = skb_linearize(skb); + else + ret = __pskb_pull_tail(skb, min_t(u16, IWL_LINK_HDR_MAX, len)) ? + 0 : -ENOMEM; + + if (ret) { + kfree_skb(skb); + goto out; + } I plan on moving that into mac80211 so that you can just pass an arbitrarily fragmented frame into mac80211. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part