mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
net: Add skb_unclone() helper function.
This function will be used in next GRE_GSO patch. This patch does not change any functionality. Signed-off-by: Pravin B Shelar <[email protected]> Acked-by: Eric Dumazet <[email protected]>
This commit is contained in:
parent
d887199dc2
commit
14bbd6a565
13 changed files with 23 additions and 21 deletions
|
|
@ -321,8 +321,7 @@ static int ah_input(struct xfrm_state *x, struct sk_buff *skb)
|
|||
|
||||
/* We are going to _remove_ AH header to keep sockets happy,
|
||||
* so... Later this can change. */
|
||||
if (skb_cloned(skb) &&
|
||||
pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
|
||||
if (skb_unclone(skb, GFP_ATOMIC))
|
||||
goto out;
|
||||
|
||||
skb->ip_summed = CHECKSUM_NONE;
|
||||
|
|
|
|||
|
|
@ -590,7 +590,7 @@ static int ip_frag_reasm(struct ipq *qp, struct sk_buff *prev,
|
|||
goto out_oversize;
|
||||
|
||||
/* Head of list must not be cloned. */
|
||||
if (skb_cloned(head) && pskb_expand_head(head, 0, 0, GFP_ATOMIC))
|
||||
if (skb_unclone(head, GFP_ATOMIC))
|
||||
goto out_nomem;
|
||||
|
||||
/* If the first fragment is fragmented itself, we split
|
||||
|
|
|
|||
|
|
@ -1331,7 +1331,7 @@ static void __pskb_trim_head(struct sk_buff *skb, int len)
|
|||
/* Remove acked data from a packet in the transmit queue. */
|
||||
int tcp_trim_head(struct sock *sk, struct sk_buff *skb, u32 len)
|
||||
{
|
||||
if (skb_cloned(skb) && pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
|
||||
if (skb_unclone(skb, GFP_ATOMIC))
|
||||
return -ENOMEM;
|
||||
|
||||
__pskb_trim_head(skb, len);
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ int xfrm4_udp_encap_rcv(struct sock *sk, struct sk_buff *skb)
|
|||
* header and optional ESP marker bytes) and then modify the
|
||||
* protocol to ESP, and then call into the transform receiver.
|
||||
*/
|
||||
if (skb_cloned(skb) && pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
|
||||
if (skb_unclone(skb, GFP_ATOMIC))
|
||||
goto drop;
|
||||
|
||||
/* Now we can update and verify the packet length... */
|
||||
|
|
|
|||
|
|
@ -142,8 +142,7 @@ static int xfrm4_mode_tunnel_input(struct xfrm_state *x, struct sk_buff *skb)
|
|||
for_each_input_rcu(rcv_notify_handlers, handler)
|
||||
handler->handler(skb);
|
||||
|
||||
if (skb_cloned(skb) &&
|
||||
(err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC)))
|
||||
if (err = skb_unclone(skb, GFP_ATOMIC))
|
||||
goto out;
|
||||
|
||||
if (x->props.flags & XFRM_STATE_DECAP_DSCP)
|
||||
|
|
|
|||
Loading…
Reference in a new issue