!152 修复LOS_RegionFind等接口竞态问题

Merge pull request !152 from JerryH/master
This commit is contained in:
openharmony_ci
2021-04-20 08:16:28 +08:00
committed by Gitee
3 changed files with 22 additions and 3 deletions

View File

@@ -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)