summaryrefslogtreecommitdiff
path: root/drivers/platform/msm/ipa
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-12-20 14:04:30 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-12-20 14:04:29 -0800
commit8a0ab369eb3c8a36657d1cfea387c736ad7fe36c (patch)
treece62568902e16666f2b9fffda1a624dc48fda5c2 /drivers/platform/msm/ipa
parent03a382981c7b94b931e254cc6ed85722062d3f90 (diff)
parentc5301546e50ec532d51a96661095dd569a6fee96 (diff)
Merge "msm: ipa: fix split packet handling"
Diffstat (limited to 'drivers/platform/msm/ipa')
-rw-r--r--drivers/platform/msm/ipa/ipa_v2/ipa_dp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/platform/msm/ipa/ipa_v2/ipa_dp.c b/drivers/platform/msm/ipa/ipa_v2/ipa_dp.c
index d51e9ac97fe0..a7f1f9a040f9 100644
--- a/drivers/platform/msm/ipa/ipa_v2/ipa_dp.c
+++ b/drivers/platform/msm/ipa/ipa_v2/ipa_dp.c
@@ -2328,6 +2328,7 @@ static int ipa_lan_rx_pyld_hdlr(struct sk_buff *skb,
unsigned int used = *(unsigned int *)skb->cb;
unsigned int used_align = ALIGN(used, 32);
unsigned long unused = IPA_GENERIC_RX_BUFF_BASE_SZ - used;
+ u32 skb2_len;
IPA_DUMP_BUFF(skb->data, 0, skb->len);
@@ -2510,8 +2511,9 @@ begin:
sys->drop_packet = true;
}
- skb2 = ipa_skb_copy_for_client(skb,
- status->pkt_len + IPA_PKT_STATUS_SIZE);
+ skb2_len = status->pkt_len + IPA_PKT_STATUS_SIZE;
+ skb2_len = min(skb2_len, skb->len);
+ skb2 = ipa_skb_copy_for_client(skb, skb2_len);
if (likely(skb2)) {
if (skb->len < len + IPA_PKT_STATUS_SIZE) {
IPADBG("SPL skb len %d len %d\n",