We prematurely enabled HAVE_ARCH_HUGE_VMALLOC for x86_64, which could cause issues [1], [2]. Fix this by with HAVE_ARCH_HUGE_VMALLOC_FLAG, which allows user of __vmalloc_node_range to ask for huge pages with a new flag VM_TRY_HUGE_VMAP. bpf_prog_pack is updated to use this __vmalloc_node_range with VM_TRY_HUGE_VMAP. [1] https://lore.kernel.org/lkml/5bd16e2c06a2df357400556c6ae01bb5d3c5c32a.camel@xxxxxxxxx/ [2] https://lore.kernel.org/netdev/14444103-d51b-0fb3-ee63-c3f182f0b546@xxxxxxxxxxxxx/ Song Liu (4): x86: disable HAVE_ARCH_HUGE_VMALLOC vmalloc: introduce HAVE_ARCH_HUGE_VMALLOC_FLAG x86: select HAVE_ARCH_HUGE_VMALLOC_FLAG for X86_64 bpf: use __vmalloc_node_range() with VM_TRY_HUGE_VMAP for bpf_prog_pack arch/Kconfig | 9 +++++++++ arch/x86/Kconfig | 2 +- include/linux/vmalloc.h | 9 +++++++-- kernel/bpf/core.c | 21 ++++++++++++++++++--- mm/vmalloc.c | 28 +++++++++++++++++++--------- 5 files changed, 54 insertions(+), 15 deletions(-) -- 2.30.2