aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/core/skbuff.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index f9800f4059b4..d1967dab9cc6 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -4124,18 +4124,21 @@ EXPORT_SYMBOL(skb_try_coalesce);
4124 */ 4124 */
4125void skb_scrub_packet(struct sk_buff *skb, bool xnet) 4125void skb_scrub_packet(struct sk_buff *skb, bool xnet)
4126{ 4126{
4127 if (xnet)
4128 skb_orphan(skb);
4129 skb->tstamp.tv64 = 0; 4127 skb->tstamp.tv64 = 0;
4130 skb->pkt_type = PACKET_HOST; 4128 skb->pkt_type = PACKET_HOST;
4131 skb->skb_iif = 0; 4129 skb->skb_iif = 0;
4132 skb->ignore_df = 0; 4130 skb->ignore_df = 0;
4133 skb_dst_drop(skb); 4131 skb_dst_drop(skb);
4134 skb->mark = 0;
4135 skb_sender_cpu_clear(skb); 4132 skb_sender_cpu_clear(skb);
4136 secpath_reset(skb); 4133 secpath_reset(skb);
4137 nf_reset(skb); 4134 nf_reset(skb);
4138 nf_reset_trace(skb); 4135 nf_reset_trace(skb);
4136
4137 if (!xnet)
4138 return;
4139
4140 skb_orphan(skb);
4141 skb->mark = 0;
4139} 4142}
4140EXPORT_SYMBOL_GPL(skb_scrub_packet); 4143EXPORT_SYMBOL_GPL(skb_scrub_packet);
4141 4144