drivers/misc/rwbuffer: destroy nxmutex/nxsem properly

Signed-off-by: chao an <anchao@xiaomi.com>
This commit is contained in:
chao an 2022-11-20 21:58:48 +08:00 committed by Xiang Xiao
parent 4413c5a563
commit 74cfa7ddb9

View File

@ -814,6 +814,7 @@ int rwb_initialize(FAR struct rwbuffer_s *rwb)
if (!rwb->wrbuffer)
{
ferr("Write buffer kmm_malloc(%" PRIu32 ") failed\n", allocsize);
nxmutex_destroy(&rwb->wrlock);
return -ENOMEM;
}
@ -842,6 +843,19 @@ int rwb_initialize(FAR struct rwbuffer_s *rwb)
{
ferr("Read-ahead buffer kmm_malloc(%" PRIu32 ") failed\n",
allocsize);
nxmutex_destroy(&rwb->rhlock);
#ifdef CONFIG_DRVR_WRITEBUFFER
if (rwb->wrmaxblocks > 0)
{
nxmutex_destroy(&rwb->wrlock);
}
if (rwb->wrbuffer != NULL)
{
kmm_free(rwb->wrbuffer);
}
#endif
return -ENOMEM;
}