net: phy: add a note about refcounting
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Mon, 13 Dec 2021 11:05:13 +0000 (11:05 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 13 Dec 2021 14:58:07 +0000 (14:58 +0000)
Recently, a patch has been submitted to "fix" the refcounting for a DT
node in of_mdiobus_link_mdiodev(). This is not a leaked refcount. The
refcount is passed to the new device.

Sadly, coccicheck identifies this location as a leaked refcount, which
means we're likely to keep getting patches to "fix" this. However,
fixing this will cause breakage. Add a comment to state that the lack
of of_node_put() here is intentional.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/mdio_bus.c

index c204067..c198722 100644 (file)
@@ -460,6 +460,9 @@ static void of_mdiobus_link_mdiodev(struct mii_bus *bus,
 
                if (addr == mdiodev->addr) {
                        device_set_node(dev, of_fwnode_handle(child));
+                       /* The refcount on "child" is passed to the mdio
+                        * device. Do _not_ use of_node_put(child) here.
+                        */
                        return;
                }
        }