lkml.org 
[lkml]   [2020]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH] net: eliminate meaningless memcpy to data in pskb_carve_inside_nonlinear()
    Date
    Eric Dumazet <eric.dumazet@gmail.com> wrote:
    > On 8/10/20 5:28 AM, Miaohe Lin wrote:
    >> The skb_shared_info part of the data is assigned in the following
    >> loop. It is meaningless to do a memcpy here.
    >>
    >
    >Reminder : net-next is CLOSED.
    >

    Thanks for your remind. I would wait for it open.

    >This is not correct. We still have to copy _something_
    >
    >Something like :
    >
    >diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 2828f6d5ba898a5e50ccce45589bf1370e474b0f..1c0519426c7ba4b04377fc8054c4223c135879ab 100644
    >--- a/net/core/skbuff.c
    >+++ b/net/core/skbuff.c
    >@@ -5953,8 +5953,8 @@ static int pskb_carve_inside_nonlinear(struct sk_buff *skb, const u32 off,
    > size = SKB_WITH_OVERHEAD(ksize(data));
    >
    > memcpy((struct skb_shared_info *)(data + size),
    >- skb_shinfo(skb), offsetof(struct skb_shared_info,
    >- frags[skb_shinfo(skb)->nr_frags]));
    >+ skb_shinfo(skb), offsetof(struct skb_shared_info,
    >+ frags[0]));
    >+
    > if (skb_orphan_frags(skb, gfp_mask)) {
    > kfree(data);
    > return -ENOMEM;
    >

    This looks good. Will send a patch v2 soon. May I add a suggested-by tag of you ?
    Many thanks.

    \
     
     \ /
      Last update: 2020-08-11 14:12    [W:5.728 / U:0.676 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site