Commit 4aea3bc5 authored by eillon's avatar eillon Committed by Zheng Zengkai
Browse files

kabi: only reserve flags on X86_64 and ARM64

euleros inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I4YW86



--------------------------------

When building with defconfig on arm32, we got a compile error:
./include/linux/page-flags-layout.h:95:2: error: #error "Not enough bits in page flags"
   95 | #error "Not enough bits in page flags"
      |  ^~~~~

Limit PG_reserve_pgflag_0 and PG_reserve_pgflag_1 to compile only on
X86_64 and ARM64 to resolve this issue.

Fixes: afdf2a6c ("kabi: Add reserved page and gfp flags for future extension")
Signed-off-by: default avatareillon <yezhenyu2@huawei.com>
Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent 2b4910e9
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -150,8 +150,10 @@ enum pageflags {
	 * flags which backported from kernel upstream, please place them
	 * behind the reserved page flags.
	 */
#if defined(CONFIG_X86_64) || defined(CONFIG_ARM64)
	PG_reserve_pgflag_0,
	PG_reserve_pgflag_1,
#endif

	__NR_PAGEFLAGS,

+7 −3
Original line number Diff line number Diff line
@@ -89,8 +89,12 @@

#if defined(CONFIG_X86_64) || defined(CONFIG_ARM64)
#define IF_HAVE_PG_POOL(flag,string) ,{1UL << flag, string}
#define IF_HAVE_PG_RESERVE0(flag,string) ,{1UL << flag, string}
#define IF_HAVE_PG_RESERVE1(flag,string) ,{1UL << flag, string}
#else
#define IF_HAVE_PG_POOL(flag,string)
#define IF_HAVE_PG_RESERVE0(flag,string)
#define IF_HAVE_PG_RESERVE1(flag,string)
#endif

#ifdef CONFIG_PIN_MEMORY
@@ -128,9 +132,9 @@ IF_HAVE_PG_IDLE(PG_young, "young" ) \
IF_HAVE_PG_IDLE(PG_idle,		"idle"		)		\
IF_HAVE_PG_ARCH_2(PG_arch_2,		"arch_2"	)		\
IF_HAVE_PG_POOL(PG_pool,		"pool"		)		\
IF_HAVE_PG_HOTREPLACE(PG_hotreplace,	"hotreplace"	),		\
	{1UL << PG_reserve_pgflag_0,	"reserve_pgflag_0"},		\
	{1UL << PG_reserve_pgflag_1,	"reserve_pgflag_1"}
IF_HAVE_PG_HOTREPLACE(PG_hotreplace,	"hotreplace"	)		\
IF_HAVE_PG_RESERVE0(PG_reserve_pgflag_0,"reserve_pgflag_0")		\
IF_HAVE_PG_RESERVE1(PG_reserve_pgflag_1,"reserve_pgflag_1")

#define show_page_flags(flags)						\
	(flags) ? __print_flags(flags, "|",				\