{
        struct mii_bus *bus = to_mii_bus(d);
 
-       BUG_ON(bus->state != MDIOBUS_RELEASED &&
-              /* for compatibility with error handling in drivers */
-              bus->state != MDIOBUS_ALLOCATED);
+       WARN(bus->state != MDIOBUS_RELEASED &&
+            /* for compatibility with error handling in drivers */
+            bus->state != MDIOBUS_ALLOCATED,
+            "%s: not in RELEASED or ALLOCATED state\n",
+            bus->id);
        kfree(bus);
 }
 
                bus->parent->of_node->fwnode.flags |=
                                        FWNODE_FLAG_NEEDS_CHILD_BOUND_ON_ADD;
 
-       BUG_ON(bus->state != MDIOBUS_ALLOCATED &&
-              bus->state != MDIOBUS_UNREGISTERED);
+       WARN(bus->state != MDIOBUS_ALLOCATED &&
+            bus->state != MDIOBUS_UNREGISTERED,
+            "%s: not in ALLOCATED or UNREGISTERED state\n", bus->id);
 
        bus->owner = owner;
        bus->dev.parent = bus->parent;
                return;
        }
 
-       BUG_ON(bus->state != MDIOBUS_UNREGISTERED);
+       WARN(bus->state != MDIOBUS_UNREGISTERED,
+            "%s: not in UNREGISTERED state\n", bus->id);
        bus->state = MDIOBUS_RELEASED;
 
        put_device(&bus->dev);