aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm/page.h
diff options
context:
space:
mode:
authorArd Biesheuvel <ardb@kernel.org>2022-01-10 09:54:22 +0100
committerArd Biesheuvel <ardb@kernel.org>2022-01-25 09:53:52 +0100
commitd31e23aff011d96278f4dbc22f2ec5db433eabaf (patch)
tree7da6315ac0b3016db684d3be4caac44f45ebd802 /arch/arm/include/asm/page.h
parentARM: entry: avoid clobbering R9 in IRQ handler (diff)
downloadlinux-dev-d31e23aff011d96278f4dbc22f2ec5db433eabaf.tar.xz
linux-dev-d31e23aff011d96278f4dbc22f2ec5db433eabaf.zip
ARM: mm: make vmalloc_seq handling SMP safe
Rework the vmalloc_seq handling so it can be used safely under SMP, as we started using it to ensure that vmap'ed stacks are guaranteed to be mapped by the active mm before switching to a task, and here we need to ensure that changes to the page tables are visible to other CPUs when they observe a change in the sequence count. Since LPAE needs none of this, fold a check against it into the vmalloc_seq counter check after breaking it out into a separate static inline helper. Given that vmap'ed stacks are now also supported on !SMP configurations, let's drop the WARN() that could potentially now fire spuriously. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Diffstat (limited to 'arch/arm/include/asm/page.h')
-rw-r--r--arch/arm/include/asm/page.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h
index 7b871ed99ccf..5fcc8a600e36 100644
--- a/arch/arm/include/asm/page.h
+++ b/arch/arm/include/asm/page.h
@@ -147,11 +147,10 @@ extern void copy_page(void *to, const void *from);
#include <asm/pgtable-3level-types.h>
#else
#include <asm/pgtable-2level-types.h>
-#endif
-
#ifdef CONFIG_VMAP_STACK
#define ARCH_PAGE_TABLE_SYNC_MASK PGTBL_PMD_MODIFIED
#endif
+#endif
#endif /* CONFIG_MMU */