linux/arch
Dave Hansen 3e844d842d x86/mm: Ensure forced page table splitting
There are a few kernel users like kfence that require 4k pages to work
correctly and do not support large mappings.  They use set_memory_4k()
to break down those large mappings.

That, in turn relies on cpa_data->force_split option to indicate to
set_memory code that it should split page tables regardless of whether
the need to be.

But, a recent change added an optimization which would return early
if a set_memory request came in that did not change permissions.  It
did not consult ->force_split and would mistakenly optimize away the
splitting that set_memory_4k() needs.  This broke kfence.

Skip the same-permission optimization when ->force_split is set.

Fixes: 127960a05548 ("x86/mm: Inhibit _PAGE_NX changes from cpa_process_alias()")
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Tested-by: Marco Elver <elver@google.com>
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/all/CA+G9fYuFxZTxkeS35VTZMXwQvohu73W3xbZ5NtjebsVvH6hCuA@mail.gmail.com/
2022-12-15 10:37:28 -08:00
..
alpha asm-generic: arch/alpha regression fix for 6.1 2022-10-14 13:47:42 -07:00
arc ARC: mm: fix leakage of memory allocated for PTE 2022-10-17 16:32:12 -07:00
arm mm: Introduce set_memory_rox() 2022-12-15 10:37:26 -08:00
arm64 RISC-V: 2022-10-23 15:00:43 -07:00
csky - hfs and hfsplus kmap API modernization from Fabio Francesco 2022-10-12 11:00:22 -07:00
hexagon - hfs and hfsplus kmap API modernization from Fabio Francesco 2022-10-12 11:00:22 -07:00
ia64 - hfs and hfsplus kmap API modernization from Fabio Francesco 2022-10-12 11:00:22 -07:00
loongarch LoongArch: BPF: Avoid declare variables in switch-case 2022-10-29 16:29:31 +08:00
m68k - hfs and hfsplus kmap API modernization from Fabio Francesco 2022-10-12 11:00:22 -07:00
microblaze - hfs and hfsplus kmap API modernization from Fabio Francesco 2022-10-12 11:00:22 -07:00
mips mm: Rename GUP_GET_PTE_LOW_HIGH 2022-12-15 10:37:27 -08:00
nios2 - hfs and hfsplus kmap API modernization from Fabio Francesco 2022-10-12 11:00:22 -07:00
openrisc OpenRISC 6.1 Updates 2022-10-15 16:47:33 -07:00
parisc Random number generator fixes for Linux 6.1-rc1. 2022-10-16 15:27:07 -07:00
powerpc mm: Convert __HAVE_ARCH_P..P_GET to the new style 2022-12-15 10:37:27 -08:00
riscv RISC-V Fixes for 6.1-rc3 2022-10-28 17:03:00 -07:00
s390 s390/pai: fix raw data collection for PMU pai_ext 2022-10-26 14:47:31 +02:00
sh mm: Rename GUP_GET_PTE_LOW_HIGH 2022-12-15 10:37:27 -08:00
sparc Random number generator fixes for Linux 6.1-rc1. 2022-10-16 15:27:07 -07:00
um x86_64: Remove pointless set_64bit() usage 2022-12-15 10:37:27 -08:00
x86 x86/mm: Ensure forced page table splitting 2022-12-15 10:37:28 -08:00
xtensa - hfs and hfsplus kmap API modernization from Fabio Francesco 2022-10-12 11:00:22 -07:00
.gitignore
Kconfig - Yu Zhao's Multi-Gen LRU patches are here. They've been under test in 2022-10-10 17:53:04 -07:00