diff --git a/arch/arm/arm/src/los_arch_mmu.c b/arch/arm/arm/src/los_arch_mmu.c index 43703c57..30fbbf7d 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 cd85dbb6..14409967 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)