diff options
Diffstat (limited to 'net/core/skbuff.c')
-rw-r--r-- | net/core/skbuff.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index ec85681a7dd8..93c4e060c91e 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -93,7 +93,7 @@ static int sock_pipe_buf_steal(struct pipe_inode_info *pipe, | |||
93 | 93 | ||
94 | 94 | ||
95 | /* Pipe buffer operations for a socket. */ | 95 | /* Pipe buffer operations for a socket. */ |
96 | static struct pipe_buf_operations sock_pipe_buf_ops = { | 96 | static const struct pipe_buf_operations sock_pipe_buf_ops = { |
97 | .can_merge = 0, | 97 | .can_merge = 0, |
98 | .map = generic_pipe_buf_map, | 98 | .map = generic_pipe_buf_map, |
99 | .unmap = generic_pipe_buf_unmap, | 99 | .unmap = generic_pipe_buf_unmap, |
@@ -493,6 +493,9 @@ int skb_recycle_check(struct sk_buff *skb, int skb_size) | |||
493 | { | 493 | { |
494 | struct skb_shared_info *shinfo; | 494 | struct skb_shared_info *shinfo; |
495 | 495 | ||
496 | if (irqs_disabled()) | ||
497 | return 0; | ||
498 | |||
496 | if (skb_is_nonlinear(skb) || skb->fclone != SKB_FCLONE_UNAVAILABLE) | 499 | if (skb_is_nonlinear(skb) || skb->fclone != SKB_FCLONE_UNAVAILABLE) |
497 | return 0; | 500 | return 0; |
498 | 501 | ||
@@ -546,7 +549,7 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old) | |||
546 | #endif | 549 | #endif |
547 | new->protocol = old->protocol; | 550 | new->protocol = old->protocol; |
548 | new->mark = old->mark; | 551 | new->mark = old->mark; |
549 | new->iif = old->iif; | 552 | new->skb_iif = old->skb_iif; |
550 | __nf_copy(new, old); | 553 | __nf_copy(new, old); |
551 | #if defined(CONFIG_NETFILTER_XT_TARGET_TRACE) || \ | 554 | #if defined(CONFIG_NETFILTER_XT_TARGET_TRACE) || \ |
552 | defined(CONFIG_NETFILTER_XT_TARGET_TRACE_MODULE) | 555 | defined(CONFIG_NETFILTER_XT_TARGET_TRACE_MODULE) |