| From cf3c46631e1637582f517a574c77cd6c05793817 Mon Sep 17 00:00:00 2001 |
| From: Pan Bian <bianpan2016@163.com> |
| Date: Thu, 21 Jan 2021 04:33:43 -0800 |
| Subject: net: dsa: bcm_sf2: put device node before return |
| |
| From: Pan Bian <bianpan2016@163.com> |
| |
| commit cf3c46631e1637582f517a574c77cd6c05793817 upstream. |
| |
| Put the device node dn before return error code on failure path. |
| |
| Fixes: 461cd1b03e32 ("net: dsa: bcm_sf2: Register our slave MDIO bus") |
| Signed-off-by: Pan Bian <bianpan2016@163.com> |
| Link: https://lore.kernel.org/r/20210121123343.26330-1-bianpan2016@163.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/dsa/bcm_sf2.c | 8 ++++++-- |
| 1 file changed, 6 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/net/dsa/bcm_sf2.c |
| +++ b/drivers/net/dsa/bcm_sf2.c |
| @@ -540,15 +540,19 @@ static int bcm_sf2_mdio_register(struct |
| /* Find our integrated MDIO bus node */ |
| dn = of_find_compatible_node(NULL, NULL, "brcm,unimac-mdio"); |
| priv->master_mii_bus = of_mdio_find_bus(dn); |
| - if (!priv->master_mii_bus) |
| + if (!priv->master_mii_bus) { |
| + of_node_put(dn); |
| return -EPROBE_DEFER; |
| + } |
| |
| get_device(&priv->master_mii_bus->dev); |
| priv->master_mii_dn = dn; |
| |
| priv->slave_mii_bus = devm_mdiobus_alloc(ds->dev); |
| - if (!priv->slave_mii_bus) |
| + if (!priv->slave_mii_bus) { |
| + of_node_put(dn); |
| return -ENOMEM; |
| + } |
| |
| priv->slave_mii_bus->priv = priv; |
| priv->slave_mii_bus->name = "sf2 slave mii"; |