diff --git a/os/various/fatfs_bindings/fatfs_syscall.c b/os/various/fatfs_bindings/fatfs_syscall.c index 09ebb1dd9..d048ca278 100644 --- a/os/various/fatfs_bindings/fatfs_syscall.c +++ b/os/various/fatfs_bindings/fatfs_syscall.c @@ -26,19 +26,18 @@ #include "ch.h" #include "ff.h" -MEMORYPOOL_DECL(fs_sem_pool, sizeof(Semaphore), chCoreAllocI); - #if _FS_REENTRANT +/*------------------------------------------------------------------------*/ +/* Static array of Synchronization Objects */ +/*------------------------------------------------------------------------*/ +static Semaphore ff_sem[_VOLUMES]; + /*------------------------------------------------------------------------*/ /* Create a Synchronization Object */ /*------------------------------------------------------------------------*/ int ff_cre_syncobj(BYTE vol, _SYNC_t *sobj) { - (void)vol; - - *sobj = chPoolAlloc(&fs_sem_pool); - if (*sobj == NULL) - return FALSE; + *sobj = &ff_sem[vol]; chSemInit(*sobj, 1); return TRUE; } @@ -49,7 +48,6 @@ int ff_cre_syncobj(BYTE vol, _SYNC_t *sobj) { int ff_del_syncobj(_SYNC_t sobj) { chSemReset(sobj, 0); - chPoolFree(&fs_sem_pool, sobj); return TRUE; } diff --git a/readme.txt b/readme.txt index 482ddc028..51ebeb21b 100644 --- a/readme.txt +++ b/readme.txt @@ -83,6 +83,8 @@ ***************************************************************************** *** 2.5.1 *** +- FIX: Fixed FatFS won't compile with _FS_REENTRANT enabled (bug 3570135) + (backported to 2.4.3). - FIX: Fixed mmc_spi.c won't compile due to misplaced declaration (bug 3570035)(backported to 2.4.3). - FIX: Fixed problem in STM32F1xx USB driver after revision 4598 (bug 3569374).