diff options
-rw-r--r-- | net/core/skbuff.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index d152394b2611..e47afb20b894 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -538,6 +538,7 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old) | |||
538 | #endif | 538 | #endif |
539 | new->protocol = old->protocol; | 539 | new->protocol = old->protocol; |
540 | new->mark = old->mark; | 540 | new->mark = old->mark; |
541 | new->iif = old->iif; | ||
541 | __nf_copy(new, old); | 542 | __nf_copy(new, old); |
542 | #if defined(CONFIG_NETFILTER_XT_TARGET_TRACE) || \ | 543 | #if defined(CONFIG_NETFILTER_XT_TARGET_TRACE) || \ |
543 | defined(CONFIG_NETFILTER_XT_TARGET_TRACE_MODULE) | 544 | defined(CONFIG_NETFILTER_XT_TARGET_TRACE_MODULE) |
@@ -550,10 +551,18 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old) | |||
550 | #endif | 551 | #endif |
551 | #endif | 552 | #endif |
552 | new->vlan_tci = old->vlan_tci; | 553 | new->vlan_tci = old->vlan_tci; |
554 | #if defined(CONFIG_MAC80211) || defined(CONFIG_MAC80211_MODULE) | ||
555 | new->do_not_encrypt = old->do_not_encrypt; | ||
556 | new->requeue = old->requeue; | ||
557 | #endif | ||
553 | 558 | ||
554 | skb_copy_secmark(new, old); | 559 | skb_copy_secmark(new, old); |
555 | } | 560 | } |
556 | 561 | ||
562 | /* | ||
563 | * You should not add any new code to this function. Add it to | ||
564 | * __copy_skb_header above instead. | ||
565 | */ | ||
557 | static struct sk_buff *__skb_clone(struct sk_buff *n, struct sk_buff *skb) | 566 | static struct sk_buff *__skb_clone(struct sk_buff *n, struct sk_buff *skb) |
558 | { | 567 | { |
559 | #define C(x) n->x = skb->x | 568 | #define C(x) n->x = skb->x |
@@ -569,16 +578,11 @@ static struct sk_buff *__skb_clone(struct sk_buff *n, struct sk_buff *skb) | |||
569 | n->cloned = 1; | 578 | n->cloned = 1; |
570 | n->nohdr = 0; | 579 | n->nohdr = 0; |
571 | n->destructor = NULL; | 580 | n->destructor = NULL; |
572 | C(iif); | ||
573 | C(tail); | 581 | C(tail); |
574 | C(end); | 582 | C(end); |
575 | C(head); | 583 | C(head); |
576 | C(data); | 584 | C(data); |
577 | C(truesize); | 585 | C(truesize); |
578 | #if defined(CONFIG_MAC80211) || defined(CONFIG_MAC80211_MODULE) | ||
579 | C(do_not_encrypt); | ||
580 | C(requeue); | ||
581 | #endif | ||
582 | atomic_set(&n->users, 1); | 586 | atomic_set(&n->users, 1); |
583 | 587 | ||
584 | atomic_inc(&(skb_shinfo(skb)->dataref)); | 588 | atomic_inc(&(skb_shinfo(skb)->dataref)); |