Skip to content

Commit 7ff8581

Browse files
cvinayakcarlescufi
authored andcommitted
Bluetooth: Controller: Replace k_sem_take loop with k_sem_reset
Replace k_sem_take loop used for consuming the remaining sem give counts with k_sem_reset. Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
1 parent ae8e7f4 commit 7ff8581

File tree

1 file changed

+4
-31
lines changed
  • subsys/bluetooth/controller/ll_sw/nordic/lll

1 file changed

+4
-31
lines changed

subsys/bluetooth/controller/ll_sw/nordic/lll/lll_adv.c

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@
5454

5555
static int init_reset(void);
5656
static void pdu_free_sem_give(void);
57-
static void pdu_free_sem_take_all_no_wait(void);
58-
static int pdu_free_sem_take_all(void);
5957

6058
#if defined(CONFIG_BT_CTLR_ADV_EXT_PDU_EXTRA_DATA_MEMORY)
6159
static inline void adv_extra_data_release(struct lll_adv_pdu *pdu, int idx);
@@ -412,7 +410,7 @@ struct pdu_adv *lll_adv_pdu_alloc_pdu_adv(void)
412410

413411
p = MFIFO_DEQUEUE_PEEK(pdu_free);
414412
if (p) {
415-
pdu_free_sem_take_all_no_wait();
413+
k_sem_reset(&sem_pdu_free);
416414

417415
MFIFO_DEQUEUE(pdu_free);
418416

@@ -430,9 +428,11 @@ struct pdu_adv *lll_adv_pdu_alloc_pdu_adv(void)
430428
return p;
431429
}
432430

433-
err = pdu_free_sem_take_all();
431+
err = k_sem_take(&sem_pdu_free, K_FOREVER);
434432
LL_ASSERT(!err);
435433

434+
k_sem_reset(&sem_pdu_free);
435+
436436
p = MFIFO_DEQUEUE(pdu_free);
437437
LL_ASSERT(p);
438438

@@ -817,33 +817,6 @@ static void pdu_free_sem_give(void)
817817
}
818818
#endif /* !CONFIG_BT_CTLR_ZLI */
819819

820-
static void pdu_free_sem_take_all_no_wait(void)
821-
{
822-
int err;
823-
824-
/* Flush all given semaphore count due to multiple release from LLL
825-
* context.
826-
*/
827-
do {
828-
err = k_sem_take(&sem_pdu_free, K_NO_WAIT);
829-
} while (!err);
830-
}
831-
832-
static int pdu_free_sem_take_all(void)
833-
{
834-
int err;
835-
836-
/* Wait for first sem give */
837-
err = k_sem_take(&sem_pdu_free, K_FOREVER);
838-
if (err) {
839-
return err;
840-
}
841-
842-
/* Flush all subsequent sem give */
843-
pdu_free_sem_take_all_no_wait();
844-
845-
return 0;
846-
}
847820
#if defined(CONFIG_BT_CTLR_ADV_EXT_PDU_EXTRA_DATA_MEMORY)
848821
static void *adv_extra_data_allocate(struct lll_adv_pdu *pdu, uint8_t last)
849822
{

0 commit comments

Comments
 (0)