aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/skbuff.h
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-10-22 08:34:51 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-10-22 08:34:51 -0400
commitc2fb7916927e989ea424e61ce5fe617e54878827 (patch)
tree02f9d5482075f8931637d82bb697a6470270136a /include/linux/skbuff.h
parent29de6ce574870a0d3fd157afdbf51c0282e2bf63 (diff)
parent6f0c0580b70c89094b3422ba81118c7b959c7556 (diff)
Merge tag 'v3.7-rc2' into drm-intel-next-queued
Linux 3.7-rc2 Backmerge to solve two ugly conflicts: - uapi. We've already added new ioctl definitions for -next. Do I need to say more? - wc support gtt ptes. We've had to revert this for snb+ for 3.7 and also fix a few other things in the code. Now we know how to make it work on snb+, but to avoid losing the other fixes do the backmerge first before re-enabling wc gtt ptes on snb+. And a few other minor things, among them git getting confused in intel_dp.c and seemingly causing a conflict out of nothing ... Conflicts: drivers/gpu/drm/i915/i915_reg.h drivers/gpu/drm/i915/intel_display.c drivers/gpu/drm/i915/intel_dp.c drivers/gpu/drm/i915/intel_modes.c include/drm/i915_drm.h Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'include/linux/skbuff.h')
-rw-r--r--include/linux/skbuff.h33
1 files changed, 6 insertions, 27 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 7632c87da2c9..6a2c34e6d962 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -589,9 +589,6 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size,
589 return __alloc_skb(size, priority, SKB_ALLOC_FCLONE, NUMA_NO_NODE); 589 return __alloc_skb(size, priority, SKB_ALLOC_FCLONE, NUMA_NO_NODE);
590} 590}
591 591
592extern void skb_recycle(struct sk_buff *skb);
593extern bool skb_recycle_check(struct sk_buff *skb, int skb_size);
594
595extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src); 592extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src);
596extern int skb_copy_ubufs(struct sk_buff *skb, gfp_t gfp_mask); 593extern int skb_copy_ubufs(struct sk_buff *skb, gfp_t gfp_mask);
597extern struct sk_buff *skb_clone(struct sk_buff *skb, 594extern struct sk_buff *skb_clone(struct sk_buff *skb,
@@ -846,13 +843,16 @@ static inline int skb_shared(const struct sk_buff *skb)
846 * 843 *
847 * NULL is returned on a memory allocation failure. 844 * NULL is returned on a memory allocation failure.
848 */ 845 */
849static inline struct sk_buff *skb_share_check(struct sk_buff *skb, 846static inline struct sk_buff *skb_share_check(struct sk_buff *skb, gfp_t pri)
850 gfp_t pri)
851{ 847{
852 might_sleep_if(pri & __GFP_WAIT); 848 might_sleep_if(pri & __GFP_WAIT);
853 if (skb_shared(skb)) { 849 if (skb_shared(skb)) {
854 struct sk_buff *nskb = skb_clone(skb, pri); 850 struct sk_buff *nskb = skb_clone(skb, pri);
855 kfree_skb(skb); 851
852 if (likely(nskb))
853 consume_skb(skb);
854 else
855 kfree_skb(skb);
856 skb = nskb; 856 skb = nskb;
857 } 857 }
858 return skb; 858 return skb;
@@ -2642,27 +2642,6 @@ static inline void skb_checksum_none_assert(const struct sk_buff *skb)
2642 2642
2643bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off); 2643bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off);
2644 2644
2645static inline bool skb_is_recycleable(const struct sk_buff *skb, int skb_size)
2646{
2647 if (irqs_disabled())
2648 return false;
2649
2650 if (skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY)
2651 return false;
2652
2653 if (skb_is_nonlinear(skb) || skb->fclone != SKB_FCLONE_UNAVAILABLE)
2654 return false;
2655
2656 skb_size = SKB_DATA_ALIGN(skb_size + NET_SKB_PAD);
2657 if (skb_end_offset(skb) < skb_size)
2658 return false;
2659
2660 if (skb_shared(skb) || skb_cloned(skb))
2661 return false;
2662
2663 return true;
2664}
2665
2666/** 2645/**
2667 * skb_head_is_locked - Determine if the skb->head is locked down 2646 * skb_head_is_locked - Determine if the skb->head is locked down
2668 * @skb: skb to check 2647 * @skb: skb to check