net: enetc: fix device and OF node leak at probe
commit70458f8a6b
upstream. Make sure to drop the references to the IERB OF node and platform device taken by of_parse_phandle() and of_find_device_by_node() during probe. Fixes:e7d48e5fbf
("net: enetc: add a mini driver for the Integrated Endpoint Register Block") Cc: stable@vger.kernel.org # 5.13 Cc: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: Johan Hovold <johan@kernel.org> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20250725171213.880-3-johan@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
744d9cf898
commit
3328ff844e
|
@ -1182,19 +1182,29 @@ static int enetc_pf_register_with_ierb(struct pci_dev *pdev)
|
|||
{
|
||||
struct platform_device *ierb_pdev;
|
||||
struct device_node *ierb_node;
|
||||
int ret;
|
||||
|
||||
ierb_node = of_find_compatible_node(NULL, NULL,
|
||||
"fsl,ls1028a-enetc-ierb");
|
||||
if (!ierb_node || !of_device_is_available(ierb_node))
|
||||
if (!ierb_node)
|
||||
return -ENODEV;
|
||||
|
||||
if (!of_device_is_available(ierb_node)) {
|
||||
of_node_put(ierb_node);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
ierb_pdev = of_find_device_by_node(ierb_node);
|
||||
of_node_put(ierb_node);
|
||||
|
||||
if (!ierb_pdev)
|
||||
return -EPROBE_DEFER;
|
||||
|
||||
return enetc_ierb_register_pf(ierb_pdev, pdev);
|
||||
ret = enetc_ierb_register_pf(ierb_pdev, pdev);
|
||||
|
||||
put_device(&ierb_pdev->dev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static struct enetc_si *enetc_psi_create(struct pci_dev *pdev)
|
||||
|
|
Loading…
Reference in New Issue