diff options
| -rw-r--r-- | net/core/skbuff.c | 9 |
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 | */ |
| 4125 | void skb_scrub_packet(struct sk_buff *skb, bool xnet) | 4125 | void 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 | } |
| 4140 | EXPORT_SYMBOL_GPL(skb_scrub_packet); | 4143 | EXPORT_SYMBOL_GPL(skb_scrub_packet); |
| 4141 | 4144 | ||
