Skip to content

Commit fa2d806

Browse files
authored
[smart] add mprotect config (RT-Thread#9082)
Signed-off-by: Shell <[email protected]>
1 parent 06ad67d commit fa2d806

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

components/lwp/Kconfig

+6
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ if RT_USING_LWP
4646
config RT_LWP_SHM_MAX_NR
4747
int "The maximum number of shared memory"
4848
default 64
49+
50+
config LWP_USING_MPROTECT
51+
bool
52+
default n
53+
help
54+
ARCH has the support of mprotect
4955
endif
5056

5157
if ARCH_MM_MPU

components/lwp/lwp_user_mm.h

+4
Original file line numberDiff line numberDiff line change
@@ -216,13 +216,17 @@ rt_inline rt_size_t lwp_user_mm_attr_to_kernel(int prot)
216216

217217
rt_size_t k_attr = 0;
218218

219+
#ifdef LWP_USING_MPROTECT
219220
if ((prot & PROT_EXEC) || (prot & PROT_WRITE) ||
220221
((prot & PROT_READ) && (prot & PROT_WRITE)))
221222
k_attr = MMU_MAP_U_RWCB;
222223
else if (prot == PROT_NONE)
223224
k_attr = MMU_MAP_K_RWCB;
224225
else
225226
k_attr = MMU_MAP_U_ROCB;
227+
#else /* !LWP_USING_MPROTECT */
228+
k_attr = MMU_MAP_U_RWCB;
229+
#endif /* LWP_USING_MPROTECT */
226230

227231
return k_attr;
228232
}

components/mm/mm_fault.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ static int _write_fault(rt_varea_t varea, void *pa, struct rt_aspace_fault_msg *
7171
}
7272
else
7373
{
74-
LOG_I("%s: No permission on %s(attr=0x%lx)", __func__, VAREA_NAME(varea), varea->attr);
74+
LOG_I("%s: No permission on %s(attr=0x%lx,writable=%s,fault_type=%d)",
75+
__func__, VAREA_NAME(varea), varea->attr,
76+
VAREA_IS_WRITABLE(varea) ? "True" : "False", msg->fault_type);
7577
}
7678
}
7779
else if (msg->fault_type == MM_FAULT_TYPE_PAGE_FAULT)

0 commit comments

Comments
 (0)