Commit c0cd1d54 authored by Will Deacon's avatar Will Deacon
Browse files

Revert "arm64: errata: Workaround possible Cortex-A715 [ESR|FAR]_ELx corruption"

This reverts commit 44ecda71.

All versions of this patch on the mailing list, including the version
that ended up getting merged, have portions of code guarded by the
non-existent CONFIG_ARM64_WORKAROUND_2645198 option. Although Anshuman
says he tested the code with some additional debug changes [1], I'm
hesitant to fix the CONFIG option and light up a bunch of code right
before I (and others) disappear for the end of year holidays, during
which time we won't be around to deal with any fallout.

So revert the change for now. We can bring back a fixed, tested version
for a later -rc when folks are thinking about things other than trees
and turkeys.

[1] https://lore.kernel.org/r/b6f61241-e436-5db1-1053-3b441080b8d6@arm.com


Reported-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
Link: https://lore.kernel.org/r/20221215094811.23188-1-lukas.bulwahn@gmail.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent 38792972
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -120,8 +120,6 @@ stable kernels.
+----------------+-----------------+-----------------+-----------------------------+
| ARM            | Cortex-A710     | #2224489        | ARM64_ERRATUM_2224489       |
+----------------+-----------------+-----------------+-----------------------------+
| ARM            | Cortex-A715     | #2645198        | ARM64_ERRATUM_2645198       |
+----------------+-----------------+-----------------+-----------------------------+
| ARM            | Cortex-X2       | #2119858        | ARM64_ERRATUM_2119858       |
+----------------+-----------------+-----------------+-----------------------------+
| ARM            | Cortex-X2       | #2224489        | ARM64_ERRATUM_2224489       |
+0 −16
Original line number Diff line number Diff line
@@ -971,22 +971,6 @@ config ARM64_ERRATUM_2457168

	  If unsure, say Y.

config ARM64_ERRATUM_2645198
	bool "Cortex-A715: 2645198: Workaround possible [ESR|FAR]_ELx corruption"
	default y
	help
	  This option adds the workaround for ARM Cortex-A715 erratum 2645198.

	  If a Cortex-A715 cpu sees a page mapping permissions change from executable
	  to non-executable, it may corrupt the ESR_ELx and FAR_ELx registers on the
	  next instruction abort caused by permission fault.

	  Only user-space does executable to non-executable permission transition via
	  mprotect() system call. Workaround the problem by doing a break-before-make
	  TLB invalidation, for all changes to executable user space mappings.

	  If unsure, say Y.

config CAVIUM_ERRATUM_22375
	bool "Cavium erratum 22375, 24313"
	default y
+0 −9
Original line number Diff line number Diff line
@@ -49,15 +49,6 @@ extern pte_t huge_ptep_get(pte_t *ptep);

void __init arm64_hugetlb_cma_reserve(void);

#define huge_ptep_modify_prot_start huge_ptep_modify_prot_start
extern pte_t huge_ptep_modify_prot_start(struct vm_area_struct *vma,
					 unsigned long addr, pte_t *ptep);

#define huge_ptep_modify_prot_commit huge_ptep_modify_prot_commit
extern void huge_ptep_modify_prot_commit(struct vm_area_struct *vma,
					 unsigned long addr, pte_t *ptep,
					 pte_t old_pte, pte_t new_pte);

#include <asm-generic/hugetlb.h>

#endif /* __ASM_HUGETLB_H */
+0 −9
Original line number Diff line number Diff line
@@ -1095,15 +1095,6 @@ static inline bool pud_sect_supported(void)
}


#define __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION
#define ptep_modify_prot_start ptep_modify_prot_start
extern pte_t ptep_modify_prot_start(struct vm_area_struct *vma,
				    unsigned long addr, pte_t *ptep);

#define ptep_modify_prot_commit ptep_modify_prot_commit
extern void ptep_modify_prot_commit(struct vm_area_struct *vma,
				    unsigned long addr, pte_t *ptep,
				    pte_t old_pte, pte_t new_pte);
#endif /* !__ASSEMBLY__ */

#endif /* __ASM_PGTABLE_H */
+0 −7
Original line number Diff line number Diff line
@@ -661,13 +661,6 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
		CAP_MIDR_RANGE_LIST(trbe_write_out_of_range_cpus),
	},
#endif
#ifdef CONFIG_ARM64_ERRATUM_2645198
	{
		.desc = "ARM erratum 2645198",
		.capability = ARM64_WORKAROUND_2645198,
		ERRATA_MIDR_ALL_VERSIONS(MIDR_CORTEX_A715)
	},
#endif
#ifdef CONFIG_ARM64_ERRATUM_2077057
	{
		.desc = "ARM erratum 2077057",
Loading