summaryrefslogtreecommitdiff
path: root/include/linux/root_dev.h
diff options
context:
space:
mode:
authorHarout Hedeshian <harouth@codeaurora.org>2015-03-11 18:13:30 -0600
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 11:05:32 -0700
commit2a0b78fa70845aa0ff6a619bfaa23e5e1ce44d11 (patch)
tree68998d5c73f4fe0732fac23b706219c2afbc0064 /include/linux/root_dev.h
parent037cd9a5952c3637908374c894d036ec5d28ad9e (diff)
net: rmnet_data: use memcpy() during deaggration of MAP frames
Using skb_clone() to deaggregate frames results in multiple side effects. First side effect is that skb->truesize will reflect the total aggregation buffer size for each 1500-byte frame charged to a socket. Hence, the socket thinks it is using more memory than it actually is resulting in unnecessary packet drops. Second side effect is that GRO will not work correctly since the cloned SKBs share the same shinfo struct. GRO uses the gso_segs field here and will get confused when the packets have bad values here. The new algorithm removes skb_clone altogether. Instead a new empty skb is allocated with alloc_skb() and a manual memcpy is performed to move the data. This guarantees that there are no shared segments between SKBs. Change-Id: I1f1b69a22ed4726c31b8d3295622a604af95d008 Signed-off-by: Harout Hedeshian <harouth@codeaurora.org>
Diffstat (limited to 'include/linux/root_dev.h')
0 files changed, 0 insertions, 0 deletions