| From 804dbd251ef5c3edd4ff14cc38b6d56588451a50 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 5 Apr 2022 14:02:33 +0200 |
| Subject: net: phy: mscc-miim: reject clause 45 register accesses |
| |
| From: Michael Walle <michael@walle.cc> |
| |
| [ Upstream commit 8d90991e5bf7fdb9f264f5f579d18969913054b7 ] |
| |
| The driver doesn't support clause 45 register access yet, but doesn't |
| check if the access is a c45 one either. This leads to spurious register |
| reads and writes. Add the check. |
| |
| Fixes: 542671fe4d86 ("net: phy: mscc-miim: Add MDIO driver") |
| Signed-off-by: Michael Walle <michael@walle.cc> |
| Reviewed-by: Andrew Lunn <andrew@lunn.ch> |
| Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/mdio/mdio-mscc-miim.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| diff --git a/drivers/net/mdio/mdio-mscc-miim.c b/drivers/net/mdio/mdio-mscc-miim.c |
| index 17f98f609ec8..5070ca2f2637 100644 |
| --- a/drivers/net/mdio/mdio-mscc-miim.c |
| +++ b/drivers/net/mdio/mdio-mscc-miim.c |
| @@ -76,6 +76,9 @@ static int mscc_miim_read(struct mii_bus *bus, int mii_id, int regnum) |
| u32 val; |
| int ret; |
| |
| + if (regnum & MII_ADDR_C45) |
| + return -EOPNOTSUPP; |
| + |
| ret = mscc_miim_wait_pending(bus); |
| if (ret) |
| goto out; |
| @@ -105,6 +108,9 @@ static int mscc_miim_write(struct mii_bus *bus, int mii_id, |
| struct mscc_miim_dev *miim = bus->priv; |
| int ret; |
| |
| + if (regnum & MII_ADDR_C45) |
| + return -EOPNOTSUPP; |
| + |
| ret = mscc_miim_wait_pending(bus); |
| if (ret < 0) |
| goto out; |
| -- |
| 2.35.1 |
| |