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 cd85dbb6cc29d0e8494ed93a267f6eb856c32519..14409967e25e936ffb7f1a26437d4ceaeac54415 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)