wifi: brcmfmac: release 'root' node in all execution paths
authorJavier Carrasco <javier.carrasco.cruz@gmail.com>
Wed, 30 Oct 2024 17:34:45 +0000 (18:34 +0100)
committerKalle Valo <kvalo@kernel.org>
Mon, 11 Nov 2024 12:07:24 +0000 (14:07 +0200)
The fixed patch introduced an additional condition to enter the scope
where the 'root' device_node is released (!settings->board_type,
currently 'err'), which avoid decrementing the refcount with a call to
of_node_put() if that second condition is not satisfied.

Move the call to of_node_put() to the point where 'root' is no longer
required to avoid leaking the resource if err is not zero.

Cc: stable@vger.kernel.org
Fixes: 7682de8b3351 ("wifi: brcmfmac: of: Fetch Apple properties")
Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20241030-brcmfmac-of-cleanup-v1-1-0b90eefb4279@gmail.com
drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c

index ae98e371dbfd307a3581b7ce8870982b8cab4a5b..c1f18e2fe540d3bf3c9ca9cd4f1b807580134924 100644 (file)
@@ -112,9 +112,8 @@ int brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type,
                }
                strreplace(board_type, '/', '-');
                settings->board_type = board_type;
-
-               of_node_put(root);
        }
+       of_node_put(root);
 
        clk = devm_clk_get_optional_enabled_with_rate(dev, "lpo", 32768);
        if (IS_ERR(clk))