[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20200324.161932.2119088651104512505.davem@davemloft.net>
Date: Tue, 24 Mar 2020 16:19:32 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: olteanv@...il.com
Cc: netdev@...r.kernel.org, andrew@...n.ch, f.fainelli@...il.com,
vivien.didelot@...il.com
Subject: Re: [PATCH net] net: dsa: tag_8021q: replace
dsa_8021q_remove_header with __skb_vlan_pop
From: Vladimir Oltean <olteanv@...il.com>
Date: Tue, 24 Mar 2020 11:45:34 +0200
> From: Vladimir Oltean <vladimir.oltean@....com>
>
> Not only did this wheel did not need reinventing, but there is also
> an issue with it: It doesn't remove the VLAN header in a way that
> preserves the L2 payload checksum when that is being provided by the DSA
> master hw. It should recalculate checksum both for the push, before
> removing the header, and for the pull afterwards. But the current
> implementation is quite dizzying, with pulls followed immediately
> afterwards by pushes, the memmove is done before the push, etc. This
> makes a DSA master with RX checksumming offload to print stack traces
> with the infamous 'hw csum failure' message.
>
> So remove the dsa_8021q_remove_header function and replace it with
> something that actually works with inet checksumming.
>
> Fixes: d461933638ae ("net: dsa: tag_8021q: Create helper function for removing VLAN header")
> Signed-off-by: Vladimir Oltean <vladimir.oltean@....com>
Applied and queued up for -stable.
Powered by blists - more mailing lists