diff --git a/arch/arm/arm/src/los_arch_mmu.c b/arch/arm/arm/src/los_arch_mmu.c index 43703c5759e2a0b80b2b6f041706beb3712a1b29..30fbbf7d457a47448bda4ddfcc110625d9d6da3f 100644 --- a/arch/arm/arm/src/los_arch_mmu.c +++ b/arch/arm/arm/src/los_arch_mmu.c @@ -790,7 +790,7 @@ STATUS_T LOS_ArchMmuDestroy(LosArchMmu *archMmu) LOS_PhysPageFree(page); } - OsArmWriteTlbiasid(archMmu->asid); + OsArmWriteTlbiasidis(archMmu->asid); OsFreeAsid(archMmu->asid); #endif (VOID)LOS_MuxDestroy(&archMmu->mtx); diff --git a/arch/arm/arm/src/los_exc.c b/arch/arm/arm/src/los_exc.c index ed575a8588119e6ec5b9ddc3560ef1bd1d3b842c..06fbb423ac6499873af38434091a6f726b6a58ae 100644 --- a/arch/arm/arm/src/los_exc.c +++ b/arch/arm/arm/src/los_exc.c @@ -228,7 +228,8 @@ UINT32 OsArmSharedPageFault(UINT32 excType, ExcContext *frame, UINT32 far, UINT3 break; } default: - ret = LOS_ERRNO_VM_NOT_FOUND; + OsArmWriteTlbimvaais(ROUNDDOWN(far, PAGE_SIZE)); + ret = LOS_OK; break; } #if defined(LOSCFG_KERNEL_SMP) && defined(LOSCFG_DEBUG_VERSION)