Loading drivers/platform/msm/ipa/ipa_v2/ipa_dp.c +20 −2 Original line number Diff line number Diff line Loading @@ -40,6 +40,8 @@ IPA_GENERIC_RX_BUFF_BASE_SZ) -\ IPA_GENERIC_RX_BUFF_BASE_SZ) #define IPA_RX_BUFF_CLIENT_HEADROOM 256 /* less 1 nominal MTU (1500 bytes) rounded to units of KB */ #define IPA_ADJUST_AGGR_BYTE_LIMIT(X) (((X) - IPA_MTU)/1000) Loading Loading @@ -2120,6 +2122,21 @@ static void ipa_cleanup_rx(struct ipa_sys_context *sys) } } static struct sk_buff *ipa_skb_copy_for_client(struct sk_buff *skb, int len) { struct sk_buff *skb2 = NULL; skb2 = __dev_alloc_skb(len + IPA_RX_BUFF_CLIENT_HEADROOM, GFP_KERNEL); if (likely(skb2)) { /* Set the data pointer */ skb_reserve(skb2, IPA_RX_BUFF_CLIENT_HEADROOM); memcpy(skb2->data, skb->data, len); skb2->len = len; skb_set_tail_pointer(skb2, len); } return skb2; } static int ipa_lan_rx_pyld_hdlr(struct sk_buff *skb, struct ipa_sys_context *sys) Loading Loading @@ -2316,7 +2333,8 @@ begin: sys->drop_packet = true; } skb2 = skb_clone(skb, GFP_KERNEL); skb2 = ipa_skb_copy_for_client(skb, status->pkt_len + IPA_PKT_STATUS_SIZE); if (likely(skb2)) { if (skb->len < len + IPA_PKT_STATUS_SIZE) { IPADBG("SPL skb len %d len %d\n", Loading Loading @@ -2359,7 +2377,7 @@ begin: IPA_PKT_STATUS_SIZE); } } else { IPAERR("fail to clone\n"); IPAERR("fail to alloc skb\n"); if (skb->len < len) { sys->prev_skb = NULL; sys->len_rem = len - skb->len + Loading Loading
drivers/platform/msm/ipa/ipa_v2/ipa_dp.c +20 −2 Original line number Diff line number Diff line Loading @@ -40,6 +40,8 @@ IPA_GENERIC_RX_BUFF_BASE_SZ) -\ IPA_GENERIC_RX_BUFF_BASE_SZ) #define IPA_RX_BUFF_CLIENT_HEADROOM 256 /* less 1 nominal MTU (1500 bytes) rounded to units of KB */ #define IPA_ADJUST_AGGR_BYTE_LIMIT(X) (((X) - IPA_MTU)/1000) Loading Loading @@ -2120,6 +2122,21 @@ static void ipa_cleanup_rx(struct ipa_sys_context *sys) } } static struct sk_buff *ipa_skb_copy_for_client(struct sk_buff *skb, int len) { struct sk_buff *skb2 = NULL; skb2 = __dev_alloc_skb(len + IPA_RX_BUFF_CLIENT_HEADROOM, GFP_KERNEL); if (likely(skb2)) { /* Set the data pointer */ skb_reserve(skb2, IPA_RX_BUFF_CLIENT_HEADROOM); memcpy(skb2->data, skb->data, len); skb2->len = len; skb_set_tail_pointer(skb2, len); } return skb2; } static int ipa_lan_rx_pyld_hdlr(struct sk_buff *skb, struct ipa_sys_context *sys) Loading Loading @@ -2316,7 +2333,8 @@ begin: sys->drop_packet = true; } skb2 = skb_clone(skb, GFP_KERNEL); skb2 = ipa_skb_copy_for_client(skb, status->pkt_len + IPA_PKT_STATUS_SIZE); if (likely(skb2)) { if (skb->len < len + IPA_PKT_STATUS_SIZE) { IPADBG("SPL skb len %d len %d\n", Loading Loading @@ -2359,7 +2377,7 @@ begin: IPA_PKT_STATUS_SIZE); } } else { IPAERR("fail to clone\n"); IPAERR("fail to alloc skb\n"); if (skb->len < len) { sys->prev_skb = NULL; sys->len_rem = len - skb->len + Loading