diff --git a/kernel/host.c b/kernel/host.c index b3ca7dd0..61715f09 100644 --- a/kernel/host.c +++ b/kernel/host.c @@ -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; diff --git a/kernel/process.c b/kernel/process.c index d1856ad0..cb1bec83 100644 --- a/kernel/process.c +++ b/kernel/process.c @@ -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; diff --git a/kernel/syscall.c b/kernel/syscall.c index 8420d7fa..618d8640 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -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);