From 9211c455dee8bbe13699ccd1a5dcdd731909ac9b Mon Sep 17 00:00:00 2001 From: Guangshuo Li Date: Wed, 16 Sep 2026 11:00:15 +0800 Subject: [PATCH] net: dpaa2: ptp: fix device node reference leak on remove dpaa2_ptp_probe() gets a referenced device node with of_find_compatible_node() and stores it in dev->of_node. The probe failure paths release this reference with of_node_put(). However, after a successful probe, dpaa2_ptp_remove() tears down the PTP and MC resources without dropping the device node reference. Release dev->of_node during driver removal and clear the pointer after dropping the reference. This issue was found by manual code inspection. Cc: stable+noautosel@kernel.org # untested fix to a driver init path Signed-off-by: Guangshuo Li Link: https://patch.msgid.link/20260916030015.2818545-1-lgs201920130244@gmail.com Signed-off-by: Jakub Kicinski --- drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp.c index 4497e3c0456d..440319a1e775 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp.c @@ -232,6 +232,8 @@ static void dpaa2_ptp_remove(struct fsl_mc_device *mc_dev) fsl_mc_free_irqs(mc_dev); dprtc_close(mc_dev->mc_io, 0, mc_dev->mc_handle); fsl_mc_portal_free(mc_dev->mc_io); + of_node_put(dev->of_node); + dev->of_node = NULL; } static const struct fsl_mc_device_id dpaa2_ptp_match_id_table[] = {