hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I9GCZS CVE: NA
-------------------------------
This reverts commit 975e216e36aa3f7aba9d8e1e1d6cbba7cf692ad7.
Signed-off-by: Tong Tiangen tongtiangen@huawei.com --- arch/arm64/Kconfig | 1 - arch/arm64/include/asm/extable.h | 1 - arch/arm64/mm/extable.c | 16 ---------------- arch/arm64/mm/fault.c | 29 +---------------------------- 4 files changed, 1 insertion(+), 46 deletions(-)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 890461d3f5e5..f657a02693cc 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -20,7 +20,6 @@ config ARM64 select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2 select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE select ARCH_HAS_CACHE_LINE_SIZE - select ARCH_HAS_COPY_MC if ACPI_APEI_GHES select ARCH_HAS_CURRENT_STACK_POINTER select ARCH_HAS_DEBUG_VIRTUAL select ARCH_HAS_DEBUG_VM_PGTABLE diff --git a/arch/arm64/include/asm/extable.h b/arch/arm64/include/asm/extable.h index f80ebd0addfd..72b0e71cc3de 100644 --- a/arch/arm64/include/asm/extable.h +++ b/arch/arm64/include/asm/extable.h @@ -46,5 +46,4 @@ bool ex_handler_bpf(const struct exception_table_entry *ex, #endif /* !CONFIG_BPF_JIT */
bool fixup_exception(struct pt_regs *regs); -bool fixup_exception_mc(struct pt_regs *regs); #endif diff --git a/arch/arm64/mm/extable.c b/arch/arm64/mm/extable.c index 478e639f8680..228d681a8715 100644 --- a/arch/arm64/mm/extable.c +++ b/arch/arm64/mm/extable.c @@ -76,19 +76,3 @@ bool fixup_exception(struct pt_regs *regs)
BUG(); } - -bool fixup_exception_mc(struct pt_regs *regs) -{ - const struct exception_table_entry *ex; - - ex = search_exception_tables(instruction_pointer(regs)); - if (!ex) - return false; - - /* - * This is not complete, More Machine check safe extable type can - * be processed here. - */ - - return false; -} diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index 5bf25c6dc27e..9bae7fbad7a7 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c @@ -732,31 +732,6 @@ static int do_bad(unsigned long far, unsigned long esr, struct pt_regs *regs) return 1; /* "fault" */ }
-static bool arm64_do_kernel_sea(unsigned long addr, unsigned int esr, - struct pt_regs *regs, int sig, int code) -{ - if (!IS_ENABLED(CONFIG_ARCH_HAS_COPY_MC)) - return false; - - if (user_mode(regs)) - return false; - - if (apei_claim_sea(regs) < 0) - return false; - - if (!fixup_exception_mc(regs)) - return false; - - if (current->flags & PF_KTHREAD) - return true; - - set_thread_esr(0, esr); - arm64_force_sig_fault(sig, code, addr, - "Uncorrected memory error on access to user memory\n"); - - return true; -} - static int do_sea(unsigned long far, unsigned long esr, struct pt_regs *regs) { const struct fault_info *inf; @@ -782,9 +757,7 @@ static int do_sea(unsigned long far, unsigned long esr, struct pt_regs *regs) */ siaddr = untagged_addr(far); } - - if (!arm64_do_kernel_sea(siaddr, esr, regs, inf->sig, inf->code)) - arm64_notify_die(inf->name, regs, inf->sig, inf->code, siaddr, esr); + arm64_notify_die(inf->name, regs, inf->sig, inf->code, siaddr, esr);
return 0; }