!152 修复LOS_RegionFind等接口竞态问题
Merge pull request !152 from JerryH/master
This commit is contained in:
@@ -1820,6 +1820,8 @@ UINT32 LOS_MemInfoGet(VOID *pool, LOS_MEM_POOL_STATUS *poolStatus)
|
||||
return LOS_NOK;
|
||||
}
|
||||
|
||||
(VOID)memset_s(poolStatus, sizeof(LOS_MEM_POOL_STATUS), 0, sizeof(LOS_MEM_POOL_STATUS));
|
||||
|
||||
struct OsMemNodeHead *tmpNode = NULL;
|
||||
struct OsMemNodeHead *endNode = NULL;
|
||||
UINT32 intSave;
|
||||
|
||||
@@ -370,12 +370,24 @@ LosVmMapRegion *OsFindRegion(LosRbTree *regionRbTree, VADDR_T vaddr, size_t len)
|
||||
|
||||
LosVmMapRegion *LOS_RegionFind(LosVmSpace *vmSpace, VADDR_T addr)
|
||||
{
|
||||
return OsFindRegion(&vmSpace->regionRbTree, addr, 1);
|
||||
LosVmMapRegion *region = NULL;
|
||||
|
||||
(VOID)LOS_MuxAcquire(&vmSpace->regionMux);
|
||||
region = OsFindRegion(&vmSpace->regionRbTree, addr, 1);
|
||||
(VOID)LOS_MuxRelease(&vmSpace->regionMux);
|
||||
|
||||
return region;
|
||||
}
|
||||
|
||||
LosVmMapRegion *LOS_RegionRangeFind(LosVmSpace *vmSpace, VADDR_T addr, size_t len)
|
||||
{
|
||||
return OsFindRegion(&vmSpace->regionRbTree, addr, len);
|
||||
LosVmMapRegion *region = NULL;
|
||||
|
||||
(VOID)LOS_MuxAcquire(&vmSpace->regionMux);
|
||||
region = OsFindRegion(&vmSpace->regionRbTree, addr, len);
|
||||
(VOID)LOS_MuxRelease(&vmSpace->regionMux);
|
||||
|
||||
return region;
|
||||
}
|
||||
|
||||
VADDR_T OsAllocRange(LosVmSpace *vmSpace, size_t len)
|
||||
|
||||
Reference in New Issue
Block a user