[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1348118417.31352.52.camel@edumazet-glaptop>
Date: Thu, 20 Sep 2012 07:20:17 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: roy.qing.li@...il.com
Cc: netdev@...r.kernel.org, edumazet@...gle.com
Subject: Re: [PATCH net-next] core: adjust checks for calling skb_copy_bits
in skb_try_coalesce
On Thu, 2012-09-20 at 11:19 +0800, roy.qing.li@...il.com wrote:
> From: Li RongQing <roy.qing.li@...il.com>
>
> Ensure that frags and frags_list of dst skb are empty if need to call
> skb_copy_bits, or else it will break the data sequence.
>
> Cc: Eric Dumazet <edumazet@...gle.com>
> Signed-off-by: Li RongQing <roy.qing.li@...il.com>
> ---
> net/core/skbuff.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> index fe00d12..f0b9446 100644
> --- a/net/core/skbuff.c
> +++ b/net/core/skbuff.c
> @@ -3455,15 +3455,15 @@ bool skb_try_coalesce(struct sk_buff *to, struct sk_buff *from,
> if (skb_cloned(to))
> return false;
>
> - if (len <= skb_tailroom(to)) {
> + if (skb_has_frag_list(to) || skb_has_frag_list(from))
> + return false;
> +
> + if (len <= skb_tailroom(to) && !skb_shinfo(to)->nr_frags) {
> BUG_ON(skb_copy_bits(from, 0, skb_put(to, len), len));
> *delta_truesize = 0;
> return true;
> }
>
> - if (skb_has_frag_list(to) || skb_has_frag_list(from))
> - return false;
> -
> if (skb_headlen(from) != 0) {
> struct page *page;
> unsigned int offset;
This is not needed at all.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists