mirror of
https://github.com/torvalds/linux.git
synced 2026-09-13 06:23:02 +02:00
net: fec: only stop PTP if it was initialized
fec_ptp_init() is only called when fep->bufdesc_ex is available.
However, fec_probe() unconditionally calls fec_ptp_stop() on the
failed_init path, and fec_drv_remove() unconditionally calls
fec_ptp_stop() during device removal.
Check fep->bufdesc_ex before calling fec_ptp_stop() in both paths
to avoid stopping PTP when it was not initialized.
Fixes: 32cba57ba7 ("net: fec: introduce fec_ptp_stop and use in probe fail path")
Reviewed-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
Link: https://patch.msgid.link/20260826103428.32807-1-phucduc.bui@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
23c53269f2
commit
dd890ae292
|
|
@ -5457,7 +5457,8 @@ fec_probe(struct platform_device *pdev)
|
|||
failed_irq:
|
||||
fec_enet_deinit(ndev);
|
||||
failed_init:
|
||||
fec_ptp_stop(pdev);
|
||||
if (fep->bufdesc_ex)
|
||||
fec_ptp_stop(pdev);
|
||||
failed_reset:
|
||||
pm_runtime_put_noidle(&pdev->dev);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
|
|
@ -5499,7 +5500,8 @@ fec_drv_remove(struct platform_device *pdev)
|
|||
ERR_PTR(ret));
|
||||
|
||||
cancel_work_sync(&fep->tx_timeout_work);
|
||||
fec_ptp_stop(pdev);
|
||||
if (fep->bufdesc_ex)
|
||||
fec_ptp_stop(pdev);
|
||||
unregister_netdev(ndev);
|
||||
fec_enet_mii_remove(fep);
|
||||
if (fep->reg_phy)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user