All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heiner Kallweit <hkallweit1@gmail.com>
To: Eric Dumazet <edumazet@google.com>,
	Eric Dumazet <eric.dumazet@gmail.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: [Bug 209423] WARN_ON_ONCE() at rtl8169_tso_csum_v2()
Date: Fri, 2 Oct 2020 13:09:18 +0200	[thread overview]
Message-ID: <b6ff841a-320c-5592-1c2b-650e18dfe3e0@gmail.com> (raw)
In-Reply-To: <CANn89iJ2zqH=_fvJQ8dhG4nBVnKNB7SjHnHDLv+0iR7UwgxTsw@mail.gmail.com>

On 02.10.2020 10:46, Eric Dumazet wrote:
> On Fri, Oct 2, 2020 at 10:32 AM Eric Dumazet <eric.dumazet@gmail.com> wrote:
>>
>>
>>
>> On 10/2/20 10:26 AM, Eric Dumazet wrote:
>>> On Thu, Oct 1, 2020 at 10:34 PM Heiner Kallweit <hkallweit1@gmail.com> wrote:
>>>>
>>>> I have a problem with the following code in ndo_start_xmit() of
>>>> the r8169 driver. A user reported the WARN being triggered due
>>>> to gso_size > 0 and gso_type = 0. The chip supports TSO(6).
>>>> The driver is widely used, therefore I'd expect much more such
>>>> reports if it should be a common problem. Not sure what's special.
>>>> My primary question: Is it a valid use case that gso_size is
>>>> greater than 0, and no SKB_GSO_ flag is set?
>>>> Any hint would be appreciated.
>>>>
>>>>
>>>
>>> Maybe this is not a TCP packet ? But in this case GSO should have taken place.
>>>
>>> You might add a
>>> pr_err_once("gso_type=%x\n", shinfo->gso_type);
>>>
> 
>>
>> Ah, sorry I see you already printed gso_type
>>
>> Must then be a bug somewhere :/
> 
> 
> napi_reuse_skb() does :
> 
> skb_shinfo(skb)->gso_type = 0;
> 
> It does _not_ clear gso_size.
> 
> I wonder if in some cases we could reuse an skb while gso_size is not zero.
> 
> Normally, we set it only from dev_gro_receive() when the skb is queued
> into GRO engine (status being GRO_HELD)
> 
Thanks Eric. I'm no expert that deep in the network stack and just wonder
why napi_reuse_skb() re-initializes less fields in shinfo than __alloc_skb().
The latter one does a
memset(shinfo, 0, offsetof(struct skb_shared_info, dataref));

What I can do is letting the affected user test the following.

diff --git a/net/core/dev.c b/net/core/dev.c
index 62b06523b..8e75399cc 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -6088,6 +6088,7 @@ static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb)
 
 	skb->encapsulation = 0;
 	skb_shinfo(skb)->gso_type = 0;
+	skb_shinfo(skb)->gso_size = 0;
 	skb->truesize = SKB_TRUESIZE(skb_end_offset(skb));
 	skb_ext_reset(skb);
 
-- 
2.28.0



  reply	other threads:[~2020-10-02 11:10 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-209423-201211-atteo0d1ZY@https.bugzilla.kernel.org/>
2020-10-01 20:34 ` Fwd: [Bug 209423] WARN_ON_ONCE() at rtl8169_tso_csum_v2() Heiner Kallweit
2020-10-02  8:26   ` Eric Dumazet
2020-10-02  8:32     ` Eric Dumazet
2020-10-02  8:46       ` Eric Dumazet
2020-10-02 11:09         ` Heiner Kallweit [this message]
2020-10-02 11:48           ` Eric Dumazet
2020-10-08 16:37             ` Heiner Kallweit
2020-10-08 17:15               ` Eric Dumazet
2020-10-08 18:41                 ` Heiner Kallweit
2020-10-08 18:50                   ` Eric Dumazet
2020-10-08 19:07                     ` Eric Dumazet
2020-10-08 20:54                       ` Heiner Kallweit
2020-10-09  8:29                         ` Eric Dumazet
2021-01-19 12:40                     ` Juerg Haefliger
2021-01-19 13:47                       ` Heiner Kallweit
2021-01-19 13:58                         ` Eric Dumazet
2021-01-19 13:54                       ` Eric Dumazet
2021-01-19 15:38                         ` Juerg Haefliger
2021-01-19 15:50                           ` Eric Dumazet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b6ff841a-320c-5592-1c2b-650e18dfe3e0@gmail.com \
    --to=hkallweit1@gmail.com \
    --cc=edumazet@google.com \
    --cc=eric.dumazet@gmail.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.