From: Helmut Grohne <helmut.grohne@intenta.de>
To: Andrew Lunn <andrew@lunn.ch>,
Florian Fainelli <f.fainelli@gmail.com>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>
Cc: <netdev@vger.kernel.org>, Woojung Huh <woojung.huh@microchip.com>,
Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>,
Vivien Didelot <vivien.didelot@gmail.com>
Subject: [PATCH] net: phy: phy_remove_link_mode should not advertise new modes
Date: Tue, 14 Jul 2020 10:25:42 +0200 [thread overview]
Message-ID: <20200714082540.GA31028@laureti-dev> (raw)
When doing "ip link set dev ... up" for a ksz9477 backed link,
ksz9477_phy_setup is called and it calls phy_remove_link_mode to remove
1000baseT HDX. During phy_remove_link_mode, phy_advertise_supported is
called.
If one wants to advertise fewer modes than the supported ones, one
usually reduces the advertised link modes before upping the link (e.g.
by passing an appropriate .link file to udev). However upping
overrwrites the advertised link modes due to the call to
phy_advertise_supported reverting to the supported link modes.
It seems unintentional to have phy_remove_link_mode enable advertising
bits and it does not match its description in any way. Instead of
calling phy_advertise_supported, we should simply clear the link mode to
be removed from both supported and advertising.
Signed-off-by: Helmut Grohne <helmut.grohne@intenta.de>
Fixes: 41124fa64d4b29 ("net: ethernet: Add helper to remove a supported link mode")
---
drivers/net/phy/phy_device.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index b4978c5fb2ca..74d06dc8fddb 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -2509,7 +2509,7 @@ EXPORT_SYMBOL(genphy_loopback);
void phy_remove_link_mode(struct phy_device *phydev, u32 link_mode)
{
linkmode_clear_bit(link_mode, phydev->supported);
- phy_advertise_supported(phydev);
+ linkmode_clear_bit(link_mode, phydev->advertising);
}
EXPORT_SYMBOL(phy_remove_link_mode);
--
2.20.1
next reply other threads:[~2020-07-14 8:25 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-14 8:25 Helmut Grohne [this message]
2020-07-14 21:07 ` [PATCH] net: phy: phy_remove_link_mode should not advertise new modes David Miller
2020-07-15 7:03 ` Helmut Grohne
2020-07-15 18:20 ` Jakub Kicinski
2020-07-15 19:01 ` Andrew Lunn
2020-07-15 18:51 ` Andrew Lunn
2020-07-15 19:27 ` Andrew Lunn
2020-07-16 12:57 ` [PATCH v2] net: dsa: microchip: call phy_remove_link_mode during probe Helmut Grohne
2020-07-16 14:10 ` Andrew Lunn
2020-07-17 8:18 ` Helmut Grohne
2020-07-17 13:18 ` Andrew Lunn
2020-07-20 9:04 ` [PATCH v3] " Helmut Grohne
2020-07-20 20:43 ` Andrew Lunn
2020-07-21 11:07 ` [PATCH v4] " Helmut Grohne
2020-07-21 15:20 ` Andrew Lunn
2020-07-21 22:50 ` David Miller
2020-07-20 21:04 ` [PATCH v3] " Andrew Lunn
2020-07-21 7:38 ` Helmut Grohne
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200714082540.GA31028@laureti-dev \
--to=helmut.grohne@intenta.de \
--cc=UNGLinuxDriver@microchip.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=vivien.didelot@gmail.com \
--cc=woojung.huh@microchip.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).