Make heap and stack private mapping

Change-Id: I4306566b3bbbe27d206c5518a2d36d117ba4ca9f
This commit is contained in:
Balazs Gerofi
2019-06-05 15:21:20 +09:00
parent dc52c8a11a
commit e9955a4bba
3 changed files with 3 additions and 2 deletions

View File

@ -254,7 +254,7 @@ int prepare_process_ranges_args_envs(struct thread *thread,
#endif
/* Map, copy and update args and envs */
flags = VR_PROT_READ | VR_PROT_WRITE;
flags = VR_PROT_READ | VR_PROT_WRITE | VR_PRIVATE;
flags |= VRFLAG_PROT_TO_MAXPROT(flags);
addr = vm->region.map_start - PAGE_SIZE * SCD_RESERVED_COUNT;
e = addr + PAGE_SIZE * ARGENV_PAGE_COUNT;

View File

@ -2303,7 +2303,7 @@ int init_process_stack(struct thread *thread, struct program_load_desc *pn,
memset(stack, 0, minsz);
vrflag = VR_STACK | VR_DEMAND_PAGING;
vrflag = VR_STACK | VR_DEMAND_PAGING | VR_PRIVATE;
vrflag |= ((ap_flag & IHK_MC_AP_USER) ? VR_AP_USER : 0);
vrflag |= PROT_TO_VR_FLAG(pn->stack_prot);
vrflag |= VR_MAXPROT_READ | VR_MAXPROT_WRITE | VR_MAXPROT_EXEC;

View File

@ -2203,6 +2203,7 @@ SYSCALL_DECLARE(brk)
#else /* POSTK_DEBUG_ARCH_DEP_60 */
vrflag = VR_PROT_READ | VR_PROT_WRITE;
#endif /* POSTK_DEBUG_ARCH_DEP_60 */
vrflag |= VR_PRIVATE;
vrflag |= VRFLAG_PROT_TO_MAXPROT(vrflag);
old_brk_end_allocated = region->brk_end_allocated;
ihk_mc_spinlock_lock_noirq(&cpu_local_var(current)->vm->memory_range_lock);