| From 622e15630370f5bd3bd549e0b18a884bce6ef38f Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 12 Mar 2022 15:15:13 -0500 |
| Subject: net: phy: marvell: Fix invalid comparison in the resume and suspend |
| functions |
| |
| From: Kurt Cancemi <kurt@x64architecture.com> |
| |
| [ Upstream commit 837d9e49402eaf030db55a49f96fc51d73b4b441 ] |
| |
| This bug resulted in only the current mode being resumed and suspended when |
| the PHY supported both fiber and copper modes and when the PHY only supported |
| copper mode the fiber mode would incorrectly be attempted to be resumed and |
| suspended. |
| |
| Fixes: 3758be3dc162 ("Marvell phy: add functions to suspend and resume both interfaces: fiber and copper links.") |
| Signed-off-by: Kurt Cancemi <kurt@x64architecture.com> |
| Reviewed-by: Andrew Lunn <andrew@lunn.ch> |
| Link: https://lore.kernel.org/r/20220312201512.326047-1-kurt@x64architecture.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/phy/marvell.c | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c |
| index 53420c531266..49801c2eb627 100644 |
| --- a/drivers/net/phy/marvell.c |
| +++ b/drivers/net/phy/marvell.c |
| @@ -1408,8 +1408,8 @@ static int marvell_suspend(struct phy_device *phydev) |
| int err; |
| |
| /* Suspend the fiber mode first */ |
| - if (!linkmode_test_bit(ETHTOOL_LINK_MODE_FIBRE_BIT, |
| - phydev->supported)) { |
| + if (linkmode_test_bit(ETHTOOL_LINK_MODE_FIBRE_BIT, |
| + phydev->supported)) { |
| err = marvell_set_page(phydev, MII_MARVELL_FIBER_PAGE); |
| if (err < 0) |
| goto error; |
| @@ -1443,8 +1443,8 @@ static int marvell_resume(struct phy_device *phydev) |
| int err; |
| |
| /* Resume the fiber mode first */ |
| - if (!linkmode_test_bit(ETHTOOL_LINK_MODE_FIBRE_BIT, |
| - phydev->supported)) { |
| + if (linkmode_test_bit(ETHTOOL_LINK_MODE_FIBRE_BIT, |
| + phydev->supported)) { |
| err = marvell_set_page(phydev, MII_MARVELL_FIBER_PAGE); |
| if (err < 0) |
| goto error; |
| -- |
| 2.34.1 |
| |