diff --git a/repos/base-sel4/patches/sel4_tlb_x86_bug.patch b/repos/base-sel4/patches/sel4_tlb_x86_bug.patch new file mode 100644 index 000000000..8de41bf0e --- /dev/null +++ b/repos/base-sel4/patches/sel4_tlb_x86_bug.patch @@ -0,0 +1,25 @@ +--- src/kernel/sel4/src/arch/x86/kernel/vspace.c ++++ src/kernel/sel4/src/arch/x86/kernel/vspace.c +@@ -711,7 +711,6 @@ void unmapPage(vm_page_size_t page_size, asid_t asid, vptr_t vptr, void *pptr) + { + findVSpaceForASID_ret_t find_ret; + lookupPTSlot_ret_t lu_ret; +- cap_t threadRoot; + lookupPDSlot_ret_t pd_ret; + pde_t *pde; + +@@ -756,12 +756,8 @@ void unmapPage(vm_page_size_t page_size, asid_t asid, vptr_t vptr, void *pptr) + break; + } + +- /* check if page belongs to current address space */ +- threadRoot = TCB_PTR_CTE_PTR(NODE_STATE(ksCurThread), tcbVTable)->cap; +- if (config_set(CONFIG_SUPPORT_PCID) || (isValidNativeRoot(threadRoot) && (vspace_root_t*)pptr_of_cap(threadRoot) == find_ret.vspace_root)) { +- invalidateTranslationSingleASID(vptr, asid, +- SMP_TERNARY(tlb_bitmap_get(find_ret.vspace_root), 0)); +- } ++ invalidateTranslationSingleASID(vptr, asid, ++ SMP_TERNARY(tlb_bitmap_get(find_ret.vspace_root), 0)); + } + + void unmapPageTable(asid_t asid, vptr_t vaddr, pte_t* pt) diff --git a/repos/base-sel4/ports/sel4.hash b/repos/base-sel4/ports/sel4.hash index d59b2c360..ce041d091 100644 --- a/repos/base-sel4/ports/sel4.hash +++ b/repos/base-sel4/ports/sel4.hash @@ -1 +1 @@ -c59276cc6e3aa138a1e56af8c8a56ce64cf327b8 +3c0361f787c7ecfebb40f1c64690c80a7e3a9b8c