Patch "r8169: don't advertise pause in jumbo mode" has been added to the 5.11-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    r8169: don't advertise pause in jumbo mode

to the 5.11-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     r8169-don-t-advertise-pause-in-jumbo-mode.patch
and it can be found in the queue-5.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit e2b5b467a282aaae917e81c02bc0e9ecb69a56b7
Author: Heiner Kallweit <hkallweit1@xxxxxxxxx>
Date:   Wed Apr 14 10:47:10 2021 +0200

    r8169: don't advertise pause in jumbo mode
    
    [ Upstream commit 453a77894efa4d9b6ef9644d74b9419c47ac427c ]
    
    It has been reported [0] that using pause frames in jumbo mode impacts
    performance. There's no available chip documentation, but vendor
    drivers r8168 and r8125 don't advertise pause in jumbo mode. So let's
    do the same, according to Roman it fixes the issue.
    
    [0] https://bugzilla.kernel.org/show_bug.cgi?id=212617
    
    Fixes: 9cf9b84cc701 ("r8169: make use of phy_set_asym_pause")
    Reported-by: Roman Mamedov <rm+bko@xxxxxxxxxxx>
    Tested-by: Roman Mamedov <rm+bko@xxxxxxxxxxx>
    Signed-off-by: Heiner Kallweit <hkallweit1@xxxxxxxxx>
    Cc: stable@xxxxxxxxxxxxxxx
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c
index 47a4ff832d75..e04e885f2893 100644
--- a/drivers/net/ethernet/realtek/r8169_main.c
+++ b/drivers/net/ethernet/realtek/r8169_main.c
@@ -2384,6 +2384,13 @@ static void rtl_jumbo_config(struct rtl8169_private *tp)
 
 	if (pci_is_pcie(tp->pci_dev) && tp->supports_gmii)
 		pcie_set_readrq(tp->pci_dev, readrq);
+
+	/* Chip doesn't support pause in jumbo mode */
+	linkmode_mod_bit(ETHTOOL_LINK_MODE_Pause_BIT,
+			 tp->phydev->advertising, !jumbo);
+	linkmode_mod_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT,
+			 tp->phydev->advertising, !jumbo);
+	phy_start_aneg(tp->phydev);
 }
 
 DECLARE_RTL_COND(rtl_chipcmd_cond)
@@ -4662,8 +4669,6 @@ static int r8169_phy_connect(struct rtl8169_private *tp)
 	if (!tp->supports_gmii)
 		phy_set_max_speed(phydev, SPEED_100);
 
-	phy_support_asym_pause(phydev);
-
 	phy_attached_info(phydev);
 
 	return 0;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux