diff --git a/os/kernel/include/chbsem.h b/os/kernel/include/chbsem.h index e60886bcd..f259bb716 100644 --- a/os/kernel/include/chbsem.h +++ b/os/kernel/include/chbsem.h @@ -70,7 +70,7 @@ typedef struct { * @param[in] taken the semaphore initial state */ #define _BSEMAPHORE_DATA(name, taken) \ - {_SEMAPHORE_DATA(name.bs_sem), ((taken) ? 0 : 1)} + {_SEMAPHORE_DATA(name.bs_sem, ((taken) ? 0 : 1))} /** * @brief Static semaphore initializer. diff --git a/readme.txt b/readme.txt index c2f718246..c4bd94d17 100644 --- a/readme.txt +++ b/readme.txt @@ -71,6 +71,8 @@ *** 2.3.0 *** - FIX: Stack overflow in CM0 port when nearing interrupts saturation (bug 3187105)(backported to 2.2.1). +- FIX: Fixed error in _BSEMAPHORE_DATA macro (bug 3184139)(backported to + 2.2.1). - FIX: Error in MAC driver (bug 3179783)(backported to 2.2.1). - FIX: Fixed wrong serial driver macros (bug 3173336)(backported to 2.2.1). - NEW: Added experimental generic USB driver, it will evolve in next diff --git a/test/testsem.c b/test/testsem.c index 25d87f3f1..36dae4086 100644 --- a/test/testsem.c +++ b/test/testsem.c @@ -250,7 +250,7 @@ static msg_t thread4(void *p) { } static void sem4_execute(void) { - BinarySemaphore bsem; + BSEMAPHORE_DECL(bsem, TRUE); /* Creates a taken binary semaphore.*/ chBSemInit(&bsem, TRUE);