On Tue, 3 Nov 2020 18:52:18 +0100 Heiner Kallweit wrote:
> Network problems with RTL8125B have been reported [0] and with help
> from Realtek it turned out that this chip version has a hw problem
> with short packets (similar to RTL8168evl). Having said that activate
> the same workaround as for RTL8168evl.
> Realtek suggested to activate the workaround for RTL8125A too, even
> though they're not 100% sure yet which RTL8125 versions are affected.
>
> [0] https://bugzilla.kernel.org/show_bug.cgi?id=209839
>
> Fixes: 0439297be951 ("r8169: add support for RTL8125B")
> Reported-by: Maxim Plotnikov <[email protected]>
> Tested-by: Maxim Plotnikov <[email protected]>
> Signed-off-by: Heiner Kallweit <[email protected]>
Applied, thanks!
> @@ -4125,7 +4133,7 @@ static bool rtl8169_tso_csum_v2(struct rtl8169_private
> *tp,
>
> opts[1] |= transport_offset << TCPHO_SHIFT;
> } else {
> - if (unlikely(rtl_test_hw_pad_bug(tp, skb)))
> + if (unlikely(skb->len < ETH_ZLEN && rtl_test_hw_pad_bug(tp)))
> return !eth_skb_pad(skb);
> }
But looks like we may have another bug here - looks like this function
treas skb_cow_head() and eth_skb_pad() failures the same, but former
doesn't free the skb on error, while the latter does.