PROT_EXEC
unsigned long supported = PROT_READ | PROT_WRITE | PROT_EXEC | PROT_SEM;
if (prot & PROT_EXEC)
base = do_mmap(NULL, STACK_TOP, PAGE_SIZE, PROT_READ | PROT_EXEC,
if (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC | PROT_SEM | PROT_SAO))
if (vma_is_pkey_exec_only(vma) && (prot != PROT_EXEC))
if (prot == PROT_EXEC) {
if (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC | PROT_SEM | PROT_ADI))
PROT_READ | PROT_EXEC, MAP_FIXED | MAP_SHARED,
PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE, fd, 0);
(x ? PROT_EXEC : 0));
(x ? PROT_EXEC : 0);
PROT_READ | PROT_WRITE | PROT_EXEC,
_calc_vm_trans(secinfo_flags, SGX_SECINFO_X, PROT_EXEC);
if (prot == PROT_EXEC) {
DEFINE(UM_PROT_EXEC, PROT_EXEC);
KFD_CWSR_TBA_TMA_SIZE, PROT_READ | PROT_EXEC,
PROT_READ | PROT_WRITE | PROT_EXEC,
PROT_READ | PROT_WRITE | PROT_EXEC,
PROT_READ | PROT_WRITE | PROT_EXEC,
PROT_READ | PROT_WRITE | PROT_EXEC,
PROT_READ | PROT_WRITE | PROT_EXEC,
PROT_READ | PROT_WRITE | PROT_EXEC,
error = vm_mmap(NULL, 0, PAGE_SIZE, PROT_READ | PROT_EXEC,
prot & PROT_EXEC ? VM_EXEC : 0);
prot |= PROT_EXEC;
if (phdr->p_flags & PF_X) prot |= PROT_EXEC;
stack_prot |= PROT_EXEC;
PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE, 0);
textpos = vm_mmap(bprm->file, 0, text_len, PROT_READ|PROT_EXEC,
PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE, 0);
PROT_READ | PROT_EXEC | PROT_WRITE, MAP_PRIVATE, 0);
return (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC | PROT_SEM)) == 0;
_calc_vm_trans(prot, PROT_EXEC, VM_EXEC) |
prot |= PROT_EXEC;
prot |= PROT_EXEC;
PROT_READ | PROT_WRITE | PROT_EXEC,
PROT_READ | PROT_WRITE | PROT_EXEC,
prot |= vma->vm_flags & VM_EXEC ? PROT_EXEC : 0;
prot |= PROT_EXEC;
if (prot == PROT_EXEC) {
prot |= PROT_EXEC;
((prot & PROT_EXEC) && !(capabilities & NOMMU_MAP_EXEC))
if (prot & PROT_EXEC)
} else if ((prot & PROT_READ) && !(prot & PROT_EXEC)) {
prot |= PROT_EXEC;
(prot & PROT_EXEC) &&
prot |= PROT_EXEC;
if (prot & PROT_EXEC)
if (reqprot & PROT_EXEC) {
if (prot & PROT_EXEC)
!(prot & PROT_EXEC) || (vma->vm_flags & VM_EXEC))
if (prot & PROT_EXEC) {
if (prot & PROT_EXEC) {
if ((prot & (PROT_READ | PROT_EXEC)) != PROT_READ)
return prot | PROT_EXEC;
return prot | PROT_EXEC;
(prot & PROT_EXEC) && (!file || IS_PRIVATE(file_inode(file)) ||
if (prot & PROT_EXEC)
(prot & PROT_EXEC) && !(vma->vm_flags & VM_EXEC)) {
ret = mprotect(func, page_size, PROT_READ | PROT_WRITE | PROT_EXEC);
event.mmap2.prot = PROT_EXEC;
/*flags=*/0, PROT_EXEC,
prot & PROT_EXEC ? 'x' : '-',
marker_addr = mmap(NULL, pgsz, PROT_READ|PROT_EXEC, MAP_PRIVATE, fd, 0);
PROT_READ|PROT_WRITE|PROT_EXEC,
PROT_EXEC, /*flags=*/0, filename, ti->thread);
(event->mmap2.prot & PROT_EXEC) ? 'x' : '-',
(event->mmap2.prot & PROT_EXEC) ? 'x' : '-',
prot = PROT_EXEC;
if ((anon || no_dso) && nsi && (prot & PROT_EXEC)) {
if (!(prot & PROT_EXEC))
map && !(map__prot(map) & PROT_EXEC) &&
err = file__read_maps(fd, map__prot(map) & PROT_EXEC, kcore_mapfn, &md,
if (map__prot(map) & PROT_EXEC)
*prot |= PROT_EXEC;
if ((event->mmap2.prot & PROT_EXEC) == 0) {
.flags = PROT_EXEC,
if (!ASSERT_EQ(mprotect(raw_data, btf_size, PROT_READ | PROT_EXEC), -1,
err = mprotect(map_mmaped, map_sz, PROT_EXEC);
ASSERT_ERR(mprotect(mmap_ptr, page_size, PROT_EXEC), "exec_cons_pos_protect");
ASSERT_ERR(mprotect(mmap_ptr, 4 * page_size, PROT_EXEC), "exec_protect");
ASSERT_ERR(mprotect(mmap_ptr, page_size, PROT_EXEC), "exec_protect");
PROT_READ | PROT_WRITE | PROT_EXEC);
ASSERT_ERR(mprotect(mmap_ptr, page_size, PROT_EXEC), "exec_cons_pos_protect");
ASSERT_ERR(mprotect(mmap_ptr, page_size, PROT_EXEC), "exec_prod_pos_protect");
ASSERT_ERR(mprotect(mmap_ptr, page_size, PROT_EXEC), "exec_data_protect");
addr = mmap(NULL, size, PROT_READ | PROT_EXEC, MAP_PRIVATE, vcpu->fd,
PROT_READ | PROT_WRITE | PROT_EXEC, MAP_FIXED, 0);
PROT_READ | PROT_WRITE | PROT_EXEC, MAP_FIXED, 0);
#define PROTECTION (PROT_READ | PROT_WRITE | PROT_EXEC)
prot |= PROT_EXEC;
self->p = mmap(NULL, self->size, PROT_READ | PROT_EXEC, self->flags, 0, 0);
self->p = mmap(NULL, self->size, PROT_WRITE | PROT_EXEC, self->flags, 0, 0);
self->p = mmap(NULL, self->size, PROT_READ | PROT_EXEC, self->flags, 0, 0);
ret = mprotect(self->p, self->size, PROT_READ | PROT_EXEC);
ret = mprotect(self->p, self->size, PROT_READ | PROT_EXEC);
ret = mprotect(self->p, self->size, PROT_WRITE | PROT_EXEC);
p = mmap(self->p, self->size, PROT_READ | PROT_EXEC,
self->p = mmap(NULL, self->size, PROT_EXEC, self->flags, 0, 0);
ret = mprotect(self->p, self->size, PROT_EXEC | PROT_BTI);
ptr2 = mmap(&carveout[6 * page_size], 5 * page_size, PROT_READ | PROT_WRITE | PROT_EXEC,
ASSERT_EQ(mprotect(ptr, 5 * page_size, PROT_READ | PROT_WRITE | PROT_EXEC), 0);
ptr1 = mmap(&carveout[page_size], 10 * page_size, PROT_EXEC,
ret = sys_mprotect(ptr, size, PROT_EXEC);
ret = mprotect_pkey(p1, PAGE_SIZE, PROT_EXEC, (u64)pkey);
ret = mprotect_pkey(p1, PAGE_SIZE, PROT_EXEC | PROT_READ, (u64)pkey);
ret = mprotect(p1, PAGE_SIZE, PROT_EXEC);
ret = mprotect(p1, PAGE_SIZE, PROT_READ|PROT_EXEC);
err = sys_mprotect_pkey(ptr, size, PROT_EXEC, 0);
err = sys_mprotect_pkey(ptr, size, PROT_READ|PROT_WRITE|PROT_EXEC, 0);
PROT_READ | PROT_WRITE | PROT_EXEC,
if (mprotect(map, pagesize, PROT_READ | PROT_WRITE | PROT_EXEC))
if (!(rights & PROT_EXEC))
FAIL_IF(mprotect(insns, pgsize, PROT_EXEC) != 0);
FAIL_IF(mprotect(insns, pgsize, PROT_EXEC) != 0);
FAIL_IF(check_exec_fault(PROT_EXEC));
FAIL_IF(check_exec_fault(PROT_READ | PROT_EXEC));
FAIL_IF(check_exec_fault(PROT_WRITE | PROT_EXEC));
FAIL_IF(check_exec_fault(PROT_READ | PROT_WRITE | PROT_EXEC));
if (mprotect(insns, pgsize, PROT_READ | PROT_WRITE | PROT_EXEC)) {
if (!(rights & PROT_EXEC))
FAIL_IF(sys_pkey_mprotect(insns, pgsize, PROT_EXEC, pkey) != 0);
FAIL_IF(sys_pkey_mprotect(insns, pgsize, PROT_EXEC, pkey) != 0);
FAIL_IF(sys_pkey_mprotect(insns, pgsize, PROT_EXEC, pkey) != 0);
FAIL_IF(sys_pkey_mprotect(insns, pgsize, PROT_EXEC, pkey) != 0);
FAIL_IF(sys_pkey_mprotect(insns, pgsize, PROT_EXEC, pkey) != 0);
if (mprotect(insns, pgsize, PROT_EXEC)) {
#define PROT_RWX (PROT_READ | PROT_WRITE | PROT_EXEC)
mprotect(pgstart, pgsize, PROT_EXEC))
mprotect((void *)low, size, PROT_READ|PROT_WRITE|PROT_EXEC);
return mmap(self->mod_info->addr, self->page_size, self->mod_info->prot | PROT_EXEC,
ptr = mmap(NULL, PAGE_SIZE, PROT_EXEC, MAP_SHARED, fd, 0);
seg->prot |= (phdr->p_flags & PF_X) ? PROT_EXEC : 0;
PROT_READ | PROT_WRITE | PROT_EXEC,
PROT_READ | PROT_WRITE | PROT_EXEC, MAP_SHARED | MAP_FIXED,
PROT_READ | PROT_WRITE | PROT_EXEC,