diff mbox series

[net] wifi: brcmfmac: release 'root' node in all execution paths

Message ID 20241030-brcmfmac-of-cleanup-v1-1-0b90eefb4279@gmail.com
State New
Headers show
Series [net] wifi: brcmfmac: release 'root' node in all execution paths | expand

Commit Message

Javier Carrasco Oct. 30, 2024, 5:34 p.m. UTC
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>
---
Note that a call to of_node_put() on a NULL device_node has no effect,
which simplifies this patch as there is no need to refactor the or
add more conditions.
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)


---
base-commit: c05c62850a8f035a267151dd86ea3daf887e28b8
change-id: 20241030-brcmfmac-of-cleanup-000fe98821df

Best regards,

Comments

Kalle Valo Oct. 31, 2024, 2:18 p.m. UTC | #1
Javier Carrasco <javier.carrasco.cruz@gmail.com> wrote:

> 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>

Wireless patches go to wireless trees, not net. But no need to resend because
of this. And I think wireless-next is approriate for this fix.
Javier Carrasco Oct. 31, 2024, 2:46 p.m. UTC | #2
On 31/10/2024 15:18, Kalle Valo wrote:
> Javier Carrasco <javier.carrasco.cruz@gmail.com> wrote:
> 
>> 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>
> 
> Wireless patches go to wireless trees, not net. But no need to resend because
> of this. And I think wireless-next is approriate for this fix.
> 


Sorry, the second link from your signature explains very well what I
should have done. I will keep that in mind for the next patch(es) to
wireless.

Thank you and best regards,
Javier Carrasco
Kalle Valo Nov. 11, 2024, 12:09 p.m. UTC | #3
Javier Carrasco <javier.carrasco.cruz@gmail.com> wrote:

> 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>

Patch applied to wireless-next.git, thanks.

2e19a3b590eb wifi: brcmfmac: release 'root' node in all execution paths
diff mbox series

Patch

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
index fe4f65756105..af930e34c21f 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
@@ -110,9 +110,8 @@  void 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);
 
 	if (!np || !of_device_is_compatible(np, "brcm,bcm4329-fmac"))
 		return;