drivers/misc/rwbuffer: destroy nxmutex/nxsem properly
Signed-off-by: chao an <anchao@xiaomi.com>
This commit is contained in:
parent
4413c5a563
commit
74cfa7ddb9
@ -814,6 +814,7 @@ int rwb_initialize(FAR struct rwbuffer_s *rwb)
|
|||||||
if (!rwb->wrbuffer)
|
if (!rwb->wrbuffer)
|
||||||
{
|
{
|
||||||
ferr("Write buffer kmm_malloc(%" PRIu32 ") failed\n", allocsize);
|
ferr("Write buffer kmm_malloc(%" PRIu32 ") failed\n", allocsize);
|
||||||
|
nxmutex_destroy(&rwb->wrlock);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -842,6 +843,19 @@ int rwb_initialize(FAR struct rwbuffer_s *rwb)
|
|||||||
{
|
{
|
||||||
ferr("Read-ahead buffer kmm_malloc(%" PRIu32 ") failed\n",
|
ferr("Read-ahead buffer kmm_malloc(%" PRIu32 ") failed\n",
|
||||||
allocsize);
|
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;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user