summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorShell <[email protected]>2023-07-25 14:07:44 +0800
committerGitHub <[email protected]>2023-07-25 14:07:44 +0800
commitacfa74f078b23d670ad04c3a2aa9cec5fbcf5afe (patch)
tree590ae17b763a050d32bd326da2dc6ce7155bcde0 /components
parent0a6aaf12ad6801d6bd5caca82edcaca9977f5ff6 (diff)
[libcpu/arm] fix race condition with ldrex,strex (#7842)
Signed-off-by: Shell <[email protected]>
Diffstat (limited to 'components')
-rw-r--r--components/lwp/arch/arm/cortex-a/lwp_arch.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/components/lwp/arch/arm/cortex-a/lwp_arch.c b/components/lwp/arch/arm/cortex-a/lwp_arch.c
index d10ac398a1..97fdf1b8b9 100644
--- a/components/lwp/arch/arm/cortex-a/lwp_arch.c
+++ b/components/lwp/arch/arm/cortex-a/lwp_arch.c
@@ -54,10 +54,13 @@ static struct rt_varea kuser_varea;
void arch_kuser_init(rt_aspace_t aspace, void *vectors)
{
- const size_t kuser_size = 0x1000;
int err;
- extern char *__kuser_helper_start, *__kuser_helper_end;
- int kuser_sz = __kuser_helper_end - __kuser_helper_start;
+ const size_t kuser_size = 0x1000;
+ extern char __kuser_helper_start[];
+ extern char __kuser_helper_end[];
+ rt_base_t start = (rt_base_t)__kuser_helper_start;
+ rt_base_t end = (rt_base_t)__kuser_helper_end;
+ int kuser_sz = end - start;
err = rt_aspace_map_static(aspace, &kuser_varea, &vectors, kuser_size,
MMU_MAP_U_RO, MMF_MAP_FIXED | MMF_PREFETCH,