Re: [PATCH 2/2] Bluetooth: btbcm: automate node cleanup in btbcm_get_board_name()

From: Javier Carrasco
Date: Thu Oct 31 2024 - 07:11:04 EST


On 31/10/2024 12:08, Krzysztof Kozlowski wrote:
> On 30/10/2024 16:46, Javier Carrasco wrote:
>> Switch to a more robust approach by automating the node release when it
>> goes out of scope, removing the need for explicit calls to
>> of_node_put().
>>
>> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@xxxxxxxxx>
>> ---
>> drivers/bluetooth/btbcm.c | 8 ++------
>> 1 file changed, 2 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c
>> index 400c2663d6b0..a1153ada74d2 100644
>> --- a/drivers/bluetooth/btbcm.c
>> +++ b/drivers/bluetooth/btbcm.c
>> @@ -541,23 +541,19 @@ static const struct bcm_subver_table bcm_usb_subver_table[] = {
>> static const char *btbcm_get_board_name(struct device *dev)
>> {
>> #ifdef CONFIG_OF
>> - struct device_node *root;
>> + struct device_node *root __free(device_node) = of_find_node_by_path("/");
>> char *board_type;
>> const char *tmp;
>>
>> - root = of_find_node_by_path("/");
>> if (!root)
>> return NULL;
>>
>> - if (of_property_read_string_index(root, "compatible", 0, &tmp)) {
>> - of_node_put(root);
>
> You just added this. Don't add code which is immediately removed. It's a
> noop or wrong code.
>
>
>
> Best regards,
> Krzysztof
>

Exactly, I added that code to fix the issue in stable kernels that don't
support the __free() macro, and then I removed it to use a safer
approach from now on.

Best regards,
Javier Carrasco