mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-11-01 15:08:21 +00:00
vmm: properly release lock on request failure
This commit is contained in:
+5
-3
@@ -530,6 +530,7 @@ bool vmm_dealwithrequest(void* addr, long error, bool user){
|
||||
|
||||
spinlock_acquire(lock);
|
||||
|
||||
|
||||
bool status;
|
||||
vmm_mapping* map = findmappingfromaddr(*start, addr);
|
||||
void* paddr;
|
||||
@@ -554,9 +555,10 @@ bool vmm_dealwithrequest(void* addr, long error, bool user){
|
||||
goodmmuflags |= ARCH_MMU_MAP_NOEXEC;
|
||||
|
||||
|
||||
if(goodmmuflags != (map->mmuflags & goodmmuflags))
|
||||
return false;
|
||||
|
||||
if(goodmmuflags != (map->mmuflags & goodmmuflags)){
|
||||
status = false;
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
||||
// allocate a page
|
||||
|
||||
Reference in New Issue
Block a user