msm: ipa: fix split packet handling
Fix packet handling in case packet received from IPA hardware is scattered across multiple buffers. Change-Id: I4935ecb8eaa438d259c1c27a66f62c78f874c9ee CRs-Fixed: 1097420 Acked-by: Ady Abraham <adya@qti.qualcomm.com> Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
This commit is contained in:
parent
3162449f7d
commit
c5301546e5
1 changed files with 4 additions and 2 deletions
|
@ -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",
|
||||
|
|
Loading…
Add table
Reference in a new issue