[PATCH net] net: mdiobus: get rid of a BUG_ON()

Subsystems: ethernet phy library, networking drivers, the rest

STALE1907d

5 messages, 4 authors, 2021-05-17 · open the first message on its own page

[PATCH net] net: mdiobus: get rid of a BUG_ON()

From: Dan Carpenter <hidden>
Date: 2021-05-15 10:01:52

We spotted a bug recently during a review where a driver was
unregistering a bus that wasn't registered, which would trigger this
BUG_ON().  Let's handle that situation more gracefully, and just print
a warning and return.

Reported-by: Russell King <linux@armlinux.org.uk>
Signed-off-by: Dan Carpenter <redacted>
---
 drivers/net/phy/mdio_bus.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index dadf75ff3ab9..6045ad3def12 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -607,7 +607,8 @@ void mdiobus_unregister(struct mii_bus *bus)
 	struct mdio_device *mdiodev;
 	int i;
 
-	BUG_ON(bus->state != MDIOBUS_REGISTERED);
+	if (WARN_ON_ONCE(bus->state != MDIOBUS_REGISTERED))
+		return;
 	bus->state = MDIOBUS_UNREGISTERED;
 
 	for (i = 0; i < PHY_MAX_ADDR; i++) {
-- 
2.30.2

Re: [PATCH net] net: mdiobus: get rid of a BUG_ON()

From: "Russell King (Oracle)" <linux@armlinux.org.uk>
Date: 2021-05-15 10:15:41

On Sat, May 15, 2021 at 01:01:11PM +0300, Dan Carpenter wrote:
We spotted a bug recently during a review where a driver was
unregistering a bus that wasn't registered, which would trigger this
BUG_ON().  Let's handle that situation more gracefully, and just print
a warning and return.

Reported-by: Russell King <linux@armlinux.org.uk>
This probably ought to be updated to:

Reported-by: Russell King (Oracle) <redacted>

now please.
Signed-off-by: Dan Carpenter <redacted>
Reviewed-by: Russell King (Oracle) <redacted>
quoted hunk
---
 drivers/net/phy/mdio_bus.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index dadf75ff3ab9..6045ad3def12 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -607,7 +607,8 @@ void mdiobus_unregister(struct mii_bus *bus)
 	struct mdio_device *mdiodev;
 	int i;
 
-	BUG_ON(bus->state != MDIOBUS_REGISTERED);
+	if (WARN_ON_ONCE(bus->state != MDIOBUS_REGISTERED))
+		return;
 	bus->state = MDIOBUS_UNREGISTERED;
 
 	for (i = 0; i < PHY_MAX_ADDR; i++) {
-- 
2.30.2
-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

Re: [PATCH net] net: mdiobus: get rid of a BUG_ON()

From: Andrew Lunn <andrew@lunn.ch>
Date: 2021-05-15 14:07:10

On Sat, May 15, 2021 at 01:01:11PM +0300, Dan Carpenter wrote:
We spotted a bug recently during a review where a driver was
unregistering a bus that wasn't registered, which would trigger this
BUG_ON().  Let's handle that situation more gracefully, and just print
a warning and return.

Reported-by: Russell King <linux@armlinux.org.uk>
Signed-off-by: Dan Carpenter <redacted>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

[PATCH net v2] net: mdiobus: get rid of a BUG_ON()

From: Dan Carpenter <hidden>
Date: 2021-05-17 09:04:57

We spotted a bug recently during a review where a driver was
unregistering a bus that wasn't registered, which would trigger this
BUG_ON().  Let's handle that situation more gracefully, and just print
a warning and return.

Reported-by: Russell King (Oracle) <redacted>
Signed-off-by: Dan Carpenter <redacted>
Reviewed-by: Russell King (Oracle) <redacted>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
---
v2: Update the Reported-by tag.

 drivers/net/phy/mdio_bus.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index dadf75ff3ab9..6045ad3def12 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -607,7 +607,8 @@ void mdiobus_unregister(struct mii_bus *bus)
 	struct mdio_device *mdiodev;
 	int i;
 
-	BUG_ON(bus->state != MDIOBUS_REGISTERED);
+	if (WARN_ON_ONCE(bus->state != MDIOBUS_REGISTERED))
+		return;
 	bus->state = MDIOBUS_UNREGISTERED;
 
 	for (i = 0; i < PHY_MAX_ADDR; i++) {
-- 
2.30.2

Re: [PATCH net v2] net: mdiobus: get rid of a BUG_ON()

From: patchwork-bot+netdevbpf@kernel.org
Date: 2021-05-17 23:00:19

Hello:

This patch was applied to netdev/net.git (refs/heads/master):

On Mon, 17 May 2021 12:04:13 +0300 you wrote:
We spotted a bug recently during a review where a driver was
unregistering a bus that wasn't registered, which would trigger this
BUG_ON().  Let's handle that situation more gracefully, and just print
a warning and return.

Reported-by: Russell King (Oracle) <redacted>
Signed-off-by: Dan Carpenter <redacted>
Reviewed-by: Russell King (Oracle) <redacted>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>

[...]
Here is the summary with links:
  - [net,v2] net: mdiobus: get rid of a BUG_ON()
    https://git.kernel.org/netdev/net/c/1dde47a66d4f

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help