net: mhi: Add support for non-linear MBIM skb processing
authorLoic Poulain <loic.poulain@linaro.org>
Mon, 29 Mar 2021 15:39:31 +0000 (17:39 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Mar 2021 23:26:16 +0000 (16:26 -0700)
commitd9f0713c9217fdd31077f890c2e15232ad2f0772
treeb657d63b763608cde3c7707ddd3f0155cfb0613e
parent24ad92c841c9fa548dc944821721944405ef7963
net: mhi: Add support for non-linear MBIM skb processing

Currently, if skb is non-linear, due to MHI skb chaining, it is
linearized in MBIM RX handler prior MBIM decoding, causing extra
allocation and copy that can be as large as the maximum MBIM frame
size (32K).

This change introduces MBIM decoding for non-linear skb, allowing to
process 'large' non-linear MBIM packets without skb linearization.
The IP packets are simply extracted from the MBIM frame using the
skb_copy_bits helper.

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/mhi/proto_mbim.c