Message ID | 20240513192157.3917664-1-horatiu.vultur@microchip.com (mailing list archive) |
---|---|
State | Accepted |
Commit | aea27a92a41dae14843f92c79e9e42d8f570105c |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: micrel: Fix receiving the timestamp in the frame for lan8841 | expand |
On Mon, May 13, 2024 at 09:21:57PM +0200, Horatiu Vultur wrote: > The blamed commit started to use the ptp workqueue to get the second > part of the timestamp. And when the port was set down, then this > workqueue is stopped. But if the config option NETWORK_PHY_TIMESTAMPING > is not enabled, then the ptp_clock is not initialized so then it would > crash when it would try to access the delayed work. > So then basically by setting up and then down the port, it would crash. > The fix consists in checking if the ptp_clock is initialized and only > then cancel the delayed work. > > Fixes: cc7554954848 ("net: micrel: Change to receive timestamp in the frame for lan8841") > Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> Reviewed-by: Simon Horman <horms@kernel.org>
Hello: This patch was applied to netdev/net.git (main) by David S. Miller <davem@davemloft.net>: On Mon, 13 May 2024 21:21:57 +0200 you wrote: > The blamed commit started to use the ptp workqueue to get the second > part of the timestamp. And when the port was set down, then this > workqueue is stopped. But if the config option NETWORK_PHY_TIMESTAMPING > is not enabled, then the ptp_clock is not initialized so then it would > crash when it would try to access the delayed work. > So then basically by setting up and then down the port, it would crash. > The fix consists in checking if the ptp_clock is initialized and only > then cancel the delayed work. > > [...] Here is the summary with links: - [net] net: micrel: Fix receiving the timestamp in the frame for lan8841 https://git.kernel.org/netdev/net/c/aea27a92a41d You are awesome, thank you!
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index ddb50a0e2bc82..87780465cd0d5 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c @@ -4676,7 +4676,8 @@ static int lan8841_suspend(struct phy_device *phydev) struct kszphy_priv *priv = phydev->priv; struct kszphy_ptp_priv *ptp_priv = &priv->ptp_priv; - ptp_cancel_worker_sync(ptp_priv->ptp_clock); + if (ptp_priv->ptp_clock) + ptp_cancel_worker_sync(ptp_priv->ptp_clock); return genphy_suspend(phydev); }
The blamed commit started to use the ptp workqueue to get the second part of the timestamp. And when the port was set down, then this workqueue is stopped. But if the config option NETWORK_PHY_TIMESTAMPING is not enabled, then the ptp_clock is not initialized so then it would crash when it would try to access the delayed work. So then basically by setting up and then down the port, it would crash. The fix consists in checking if the ptp_clock is initialized and only then cancel the delayed work. Fixes: cc7554954848 ("net: micrel: Change to receive timestamp in the frame for lan8841") Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> --- drivers/net/phy/micrel.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)