2021-10-07 15:56:42

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: [PATCH][next] Bluetooth: use bitmap_empty to check if a bitmap has any bits set

Hi Colin,

On Thu, Oct 7, 2021 at 4:17 AM Colin King <[email protected]> wrote:
>
> From: Colin Ian King <[email protected]>
>
> The check to see if any tasks are left checks if bitmap array is zero
> rather than using the appropriate bitmap helper functions to check the
> bits in the array. Fix this by using bitmap_empty on the bitmap.
>
> Addresses-Coverity: (" Array compared against 0")
> Fixes: 912730b52552 ("Bluetooth: Fix wake up suspend_wait_q prematurely")
> Signed-off-by: Colin Ian King <[email protected]>
> ---
> net/bluetooth/hci_request.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c
> index 209f4fe17237..bad3b9c895ba 100644
> --- a/net/bluetooth/hci_request.c
> +++ b/net/bluetooth/hci_request.c
> @@ -1108,7 +1108,7 @@ static void suspend_req_complete(struct hci_dev *hdev, u8 status, u16 opcode)
> clear_bit(SUSPEND_SET_ADV_FILTER, hdev->suspend_tasks);
>
> /* Wake up only if there are no tasks left */
> - if (!hdev->suspend_tasks)
> + if (!bitmap_empty(hdev->suspend_tasks, __SUSPEND_NUM_TASKS))
> wake_up(&hdev->suspend_wait_q);
> }
>
> --
> 2.32.0

I was going to revert this change since it appears wake_up does
actually check the wake condition there is no premature wake up after
all.

--
Luiz Augusto von Dentz


2021-10-07 19:39:32

by Colin King

[permalink] [raw]
Subject: Re: [PATCH][next] Bluetooth: use bitmap_empty to check if a bitmap has any bits set

On 07/10/2021 16:34, Luiz Augusto von Dentz wrote:
> Hi Colin,
>
> On Thu, Oct 7, 2021 at 4:17 AM Colin King <[email protected]> wrote:
>>
>> From: Colin Ian King <[email protected]>
>>
>> The check to see if any tasks are left checks if bitmap array is zero
>> rather than using the appropriate bitmap helper functions to check the
>> bits in the array. Fix this by using bitmap_empty on the bitmap.
>>
>> Addresses-Coverity: (" Array compared against 0")
>> Fixes: 912730b52552 ("Bluetooth: Fix wake up suspend_wait_q prematurely")
>> Signed-off-by: Colin Ian King <[email protected]>
>> ---
>> net/bluetooth/hci_request.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c
>> index 209f4fe17237..bad3b9c895ba 100644
>> --- a/net/bluetooth/hci_request.c
>> +++ b/net/bluetooth/hci_request.c
>> @@ -1108,7 +1108,7 @@ static void suspend_req_complete(struct hci_dev *hdev, u8 status, u16 opcode)
>> clear_bit(SUSPEND_SET_ADV_FILTER, hdev->suspend_tasks);
>>
>> /* Wake up only if there are no tasks left */
>> - if (!hdev->suspend_tasks)
>> + if (!bitmap_empty(hdev->suspend_tasks, __SUSPEND_NUM_TASKS))
>> wake_up(&hdev->suspend_wait_q);
>> }
>>
>> --
>> 2.32.0
>
> I was going to revert this change since it appears wake_up does
> actually check the wake condition there is no premature wake up after
> all.
>
OK, makes sense.

Colin

2021-10-07 19:40:06

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH][next] Bluetooth: use bitmap_empty to check if a bitmap has any bits set

Hi Luiz,

>> The check to see if any tasks are left checks if bitmap array is zero
>> rather than using the appropriate bitmap helper functions to check the
>> bits in the array. Fix this by using bitmap_empty on the bitmap.
>>
>> Addresses-Coverity: (" Array compared against 0")
>> Fixes: 912730b52552 ("Bluetooth: Fix wake up suspend_wait_q prematurely")
>> Signed-off-by: Colin Ian King <[email protected]>
>> ---
>> net/bluetooth/hci_request.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c
>> index 209f4fe17237..bad3b9c895ba 100644
>> --- a/net/bluetooth/hci_request.c
>> +++ b/net/bluetooth/hci_request.c
>> @@ -1108,7 +1108,7 @@ static void suspend_req_complete(struct hci_dev *hdev, u8 status, u16 opcode)
>> clear_bit(SUSPEND_SET_ADV_FILTER, hdev->suspend_tasks);
>>
>> /* Wake up only if there are no tasks left */
>> - if (!hdev->suspend_tasks)
>> + if (!bitmap_empty(hdev->suspend_tasks, __SUSPEND_NUM_TASKS))
>> wake_up(&hdev->suspend_wait_q);
>> }
>>
>> --
>> 2.32.0
>
> I was going to revert this change since it appears wake_up does
> actually check the wake condition there is no premature wake up after
> all.

so should I take the patch "Fix wake up suspend_wait_q prematurelyā€¯ completely out?

Regards

Marcel