Prev: [RFC PATCH v9 08/16] Modify netdev_free_page() to release external buffer
Next: [RFC PATCH v9 07/16] Modify netdev_alloc_page() to get external buffer
From: xiaohui.xin on 6 Aug 2010 05:20 From: Xin Xiaohui <xiaohui.xin(a)intel.com> Signed-off-by: Xin Xiaohui <xiaohui.xin(a)intel.com> Signed-off-by: Zhao Yu <yzhao81new(a)gmail.com> Reviewed-by: Jeff Dike <jdike(a)linux.intel.com> --- net/core/skbuff.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/net/core/skbuff.c b/net/core/skbuff.c index bbf4707..9b156bb 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -565,6 +565,12 @@ int skb_recycle_check(struct sk_buff *skb, int skb_size) if (skb_shared(skb) || skb_cloned(skb)) return 0; + /* if the device wants to do mediate passthru, the skb may + * get external buffer, so don't recycle + */ + if (dev_is_mpassthru(skb->dev)) + return 0; + skb_release_head_state(skb); shinfo = skb_shinfo(skb); atomic_set(&shinfo->dataref, 1); -- 1.5.4.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |