From: Marc Kleine-Budde Date: Wed, 6 Aug 2025 10:20:44 +0000 (+0200) Subject: can: m_can: m_can_get_berr_counter(): don't wake up controller if interface is down X-Git-Tag: v6.19-rc1~170^2~344^2^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=91a55c72a821d106a588af4c28aec129dcbea5af;p=thirdparty%2Fkernel%2Flinux.git can: m_can: m_can_get_berr_counter(): don't wake up controller if interface is down If the interface is down, the CAN controller might be powered down, the clock disabled, and/or it's external reset asserted. Don't wake up the controller to read the CAN bus error counters, if the interface is down. Reviewed-by: Markus Schneider-Pargmann Link: https://patch.msgid.link/20251008-m_can-cleanups-v1-7-1784a18eaa84@pengutronix.de Signed-off-by: Marc Kleine-Budde --- diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index 713d3df296df5..eb856547ae7df 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -791,6 +791,10 @@ static int m_can_get_berr_counter(const struct net_device *dev, struct m_can_classdev *cdev = netdev_priv(dev); int err; + /* Avoid waking up the controller if the interface is down */ + if (!(dev->flags & IFF_UP)) + return 0; + err = m_can_clk_start(cdev); if (err) return err;