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

Javier Carrasco posted 1 patch 3 weeks, 4 days ago
drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
[PATCH net] wifi: brcmfmac: release 'root' node in all execution paths
Posted by Javier Carrasco 3 weeks, 4 days ago
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(-)

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;

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

Best regards,
-- 
Javier Carrasco <javier.carrasco.cruz@gmail.com>
Re: [PATCH net] wifi: brcmfmac: release 'root' node in all execution paths
Posted by Kalle Valo 1 week, 6 days ago
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

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20241030-brcmfmac-of-cleanup-v1-1-0b90eefb4279@gmail.com/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Re: [PATCH net] wifi: brcmfmac: release 'root' node in all execution paths
Posted by Kalle Valo 3 weeks, 3 days ago
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.

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20241030-brcmfmac-of-cleanup-v1-1-0b90eefb4279@gmail.com/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Re: [PATCH net] wifi: brcmfmac: release 'root' node in all execution paths
Posted by Javier Carrasco 3 weeks, 3 days ago
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