Patch "net: pcs: xpcs: fix C73 AN not getting enabled" has been added to the 6.1-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

    net: pcs: xpcs: fix C73 AN not getting enabled

to the 6.1-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:
     net-pcs-xpcs-fix-c73-an-not-getting-enabled.patch
and it can be found in the queue-6.1 subdirectory.

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



commit 7037274d507d6fd52cd99761ad2c94708f1029fd
Author: Vladimir Oltean <vladimir.oltean@xxxxxxx>
Date:   Tue May 16 18:44:10 2023 +0300

    net: pcs: xpcs: fix C73 AN not getting enabled
    
    [ Upstream commit c46e78ba9a7a09da4f192dc8df15c4e8a07fb9e0 ]
    
    The XPCS expects clause 73 (copper backplane) autoneg to follow the
    ethtool autoneg bit. It actually did that until the blamed
    commit inaptly replaced state->an_enabled (coming from ethtool) with
    phylink_autoneg_inband() (coming from the device tree or struct
    phylink_config), as part of an unrelated phylink_pcs API conversion.
    
    Russell King suggests that state->an_enabled from the original code was
    just a proxy for the ethtool Autoneg bit, and that the correct way of
    restoring the functionality is to check for this bit in the advertising
    mask.
    
    Fixes: 11059740e616 ("net: pcs: xpcs: convert to phylink_pcs_ops")
    Link: https://lore.kernel.org/netdev/ZGNt2MFeRolKGFck@xxxxxxxxxxxxxxxxxxxxx/
    Suggested-by: Russell King (Oracle) <linux@xxxxxxxxxxxxxxx>
    Signed-off-by: Vladimir Oltean <vladimir.oltean@xxxxxxx>
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/pcs/pcs-xpcs.c b/drivers/net/pcs/pcs-xpcs.c
index dd88624593c71..3f882bce37f42 100644
--- a/drivers/net/pcs/pcs-xpcs.c
+++ b/drivers/net/pcs/pcs-xpcs.c
@@ -881,7 +881,7 @@ int xpcs_do_config(struct dw_xpcs *xpcs, phy_interface_t interface,
 
 	switch (compat->an_mode) {
 	case DW_AN_C73:
-		if (phylink_autoneg_inband(mode)) {
+		if (test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, advertising)) {
 			ret = xpcs_config_aneg_c73(xpcs, compat);
 			if (ret)
 				return ret;



[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