Message ID | 20211007111713.12207-1-colin.king@canonical.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [next] Bluetooth: use bitmap_empty to check if a bitmap has any bits set | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Guessing tree name failed - patch did not apply |
Hi Colin, On Thu, Oct 7, 2021 at 4:17 AM Colin King <colin.king@canonical.com> wrote: > > From: Colin Ian King <colin.king@canonical.com> > > 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 <colin.king@canonical.com> > --- > 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.
On 07/10/2021 16:34, Luiz Augusto von Dentz wrote: > Hi Colin, > > On Thu, Oct 7, 2021 at 4:17 AM Colin King <colin.king@canonical.com> wrote: >> >> From: Colin Ian King <colin.king@canonical.com> >> >> 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 <colin.king@canonical.com> >> --- >> 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
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 <colin.king@canonical.com> >> --- >> 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
Hi Marcel, On Thu, Oct 7, 2021 at 8:47 AM Marcel Holtmann <marcel@holtmann.org> wrote: > > 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 <colin.king@canonical.com> > >> --- > >> 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? Yes, please take it out.
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); }