On Thu, 2015-02-19 at 12:51 +0200, Vladimir Kondratiev wrote: > I am looking for ideas how can one process AMSDU in the software, without copying data. > Current implementation like ieee80211_amsdu_to_8023s() do copy packet data. > > Assume I got in the driver, MPDU that is AMSDU containing several MSDU's. > It is in the single memory buffer that was allocated for DMA. > Can I construct skb's per MSDU with minimal data copy, having most of the > original data in place? Any ideas for this? As you noticed, this implementation is very inefficient. If the SKB has pages (rather than being linear, as ieee80211_amsdu_to_8023s() assumes) then what Emmanuel said would probably be the best approach, although it could be possible that would mess up truesize accounting and lead to lower performance. Certainly you'd want to do it only for suitably large packets (at least bigger than 128 bytes or so) johannes -- 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