| From da717540acd34e5056e3fa35791d50f6b3303f55 Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Fri, 25 Jul 2025 19:12:11 +0200 |
| Subject: net: gianfar: fix device leak when querying time stamp info |
| |
| From: Johan Hovold <johan@kernel.org> |
| |
| commit da717540acd34e5056e3fa35791d50f6b3303f55 upstream. |
| |
| Make sure to drop the reference to the ptp device taken by |
| of_find_device_by_node() when querying the time stamping capabilities. |
| |
| Note that holding a reference to the ptp device does not prevent its |
| driver data from going away. |
| |
| Fixes: 7349a74ea75c ("net: ethernet: gianfar_ethtool: get phc index through drvdata") |
| Cc: stable@vger.kernel.org # 4.18 |
| Cc: Yangbo Lu <yangbo.lu@nxp.com> |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Reviewed-by: Simon Horman <horms@kernel.org> |
| Link: https://patch.msgid.link/20250725171213.880-4-johan@kernel.org |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/freescale/gianfar_ethtool.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/freescale/gianfar_ethtool.c |
| +++ b/drivers/net/ethernet/freescale/gianfar_ethtool.c |
| @@ -1466,8 +1466,10 @@ static int gfar_get_ts_info(struct net_d |
| if (ptp_node) { |
| ptp_dev = of_find_device_by_node(ptp_node); |
| of_node_put(ptp_node); |
| - if (ptp_dev) |
| + if (ptp_dev) { |
| ptp = platform_get_drvdata(ptp_dev); |
| + put_device(&ptp_dev->dev); |
| + } |
| } |
| |
| if (ptp) |