[PATCH net 1/4] net: bcmgenet: stop the PHY when a WoL resume rebuilds the datapath

From: Nicolai Buchwitz

Date: Sat Oct 17 2026 - 08:00:05 EST


A WoL suspend leaves the PHY running. If the resume then finds the MAC
was reset it tears the rest down and rebuilds, which ends in phy_start().
That warns and does nothing unless the PHY is PHY_READY or PHY_HALTED.

Stop the PHY with the rest of the teardown, but only while it is still
running. A rebuild that failed can have stopped it already, and
phy_stop() warns about that too.

Fixes: 254f3239dd07 ("net: bcmgenet: revise suspend/resume")
Signed-off-by: Nicolai Buchwitz <nb@xxxxxxxxxxx>
---
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index e8908916558b1..308716cddc077 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -4288,6 +4288,9 @@ static int bcmgenet_resume(struct device *d)
bcmgenet_rdma_disable(priv);
bcmgenet_intr_disable(priv);
bcmgenet_fini_dma(priv);
+ /* An earlier rebuild of this datapath may have stopped it */
+ if (phy_is_started(dev->phydev))
+ phy_stop(dev->phydev);
enable_irq(priv->irq1);
}


--
2.53.0