On 10/22/2015 04:08 PM, Grumbach, Emmanuel wrote: > When the op_mode sends an skb whose payload is bigger than > MSS, PCIe will create an A-MSDU out of it. PCIe assumes > that the skb that is coming from the op_mode can fit in one > A-MSDU. It is the op_mode's responsibility to make sure > that this guarantee holds. > > Additional headers need to be built for the subframes. > The TSO core code takes care of the IP / TCP headers and > the driver takes care of the 802.11 subframe headers. > > These headers are stored on a per-cpu page that is re-used > for all the packets handled on that same CPU. Each skb > holds a reference to that page and releases the page when > it is reclaimed. When the page gets full, it is released > and a new one is allocated. > > Since any SKB that doesn't go through the fast-xmit path > of mac80211 will be segmented, we can assume here that the > packet is not WEP / TKIP and has a proper SNAP header. > > Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@xxxxxxxxx> > --- > v4: * Create a helper to free the skb's ref to the hdr page > * add comment on that clarifies that the headers fit in a page > * return -ENOMEM if the per_cpu variable allocation failed > * don't zero the per_cpu struct after allocation > --- Meh... Someone internally founds a few bugs... Don't waste your time on this one. V5 will come later tonight. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html