File tree Expand file tree Collapse file tree
libcpu/aarch64/common/include Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -51,14 +51,18 @@ static inline void rt_hw_tlb_invalidate_all_local(void)
5151static inline void rt_hw_tlb_invalidate_aspace (rt_aspace_t aspace )
5252{
5353#ifdef ARCH_USING_ASID
54- __asm__ volatile (
55- // ensure updates to pte completed
56- "dsb nshst\n"
57- "tlbi aside1is, %0\n"
58- "dsb nsh\n"
59- // after tlb in new context, refresh inst
60- "isb\n" ::"r" (TLBI_ARG (0ul , aspace -> asid ))
61- : "memory" );
54+ if (aspace == & rt_kernel_space ) {
55+ rt_hw_tlb_invalidate_all ();
56+ } else {
57+ __asm__ volatile (
58+ // ensure updates to pte completed
59+ "dsb ishst\n"
60+ "tlbi aside1is, %0\n"
61+ "dsb ish\n"
62+ // after tlb in new context, refresh inst
63+ "isb\n" ::"r" (TLBI_ARG (0ul , aspace -> asid ))
64+ : "memory" );
65+ }
6266#else
6367 rt_hw_tlb_invalidate_all ();
6468#endif
You can’t perform that action at this time.
0 commit comments