Re: [PATCH v3 1/3] x86/boot: Add xloadflags bits for 5-level kernel checking

2019-04-05 Thread Baoquan He
On 04/05/19 at 10:23pm, Thomas Gleixner wrote:
> On Tue, 12 Mar 2019, Baoquan He wrote:
> 
> > Add two bits XLF_5LEVEL and XLF_5LEVEL_ENABLED for 5-level kernel.
> > Bit XLF_5LEVEL indicates if 5-level related code is contained
> > in this kernel.
> > Bit XLF_5LEVEL_ENABLED indicates if CONFIG_X86_5LEVEL=y is set.
> > 
> > They are being used in later patch to check if kexec/kdump kernel
> > is loaded in right place.
> 
> Only XLF_5LEVEL is checked. So what's the second flag for?

I put the explanation why only XLF_5LEVEL is checked in cover letter.
Will add them in this log.


Re: [PATCH v3 1/3] x86/boot: Add xloadflags bits for 5-level kernel checking

2019-04-05 Thread Thomas Gleixner
On Tue, 12 Mar 2019, Baoquan He wrote:

> Add two bits XLF_5LEVEL and XLF_5LEVEL_ENABLED for 5-level kernel.
> Bit XLF_5LEVEL indicates if 5-level related code is contained
> in this kernel.
> Bit XLF_5LEVEL_ENABLED indicates if CONFIG_X86_5LEVEL=y is set.
> 
> They are being used in later patch to check if kexec/kdump kernel
> is loaded in right place.

Only XLF_5LEVEL is checked. So what's the second flag for?

Thanks,

tglx


[PATCH v3 1/3] x86/boot: Add xloadflags bits for 5-level kernel checking

2019-03-12 Thread Baoquan He
Add two bits XLF_5LEVEL and XLF_5LEVEL_ENABLED for 5-level kernel.
Bit XLF_5LEVEL indicates if 5-level related code is contained
in this kernel.
Bit XLF_5LEVEL_ENABLED indicates if CONFIG_X86_5LEVEL=y is set.

They are being used in later patch to check if kexec/kdump kernel
is loaded in right place.

Signed-off-by: Baoquan He 
Acked-by: Kirill A. Shutemov 
---
 arch/x86/boot/header.S| 12 +++-
 arch/x86/include/uapi/asm/bootparam.h |  2 ++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
index 850b8762e889..be19f4199727 100644
--- a/arch/x86/boot/header.S
+++ b/arch/x86/boot/header.S
@@ -419,7 +419,17 @@ xloadflags:
 # define XLF4 0
 #endif
 
-   .word XLF0 | XLF1 | XLF23 | XLF4
+#ifdef CONFIG_X86_64
+#ifdef CONFIG_X86_5LEVEL
+#define XLF56 (XLF_5LEVEL|XLF_5LEVEL_ENABLED)
+#else
+#define XLF56 XLF_5LEVEL
+#endif
+#else
+#define XLF56 0
+#endif
+
+   .word XLF0 | XLF1 | XLF23 | XLF4 | XLF56
 
 cmdline_size:   .long   COMMAND_LINE_SIZE-1 #length of the command line,
 #added with boot protocol
diff --git a/arch/x86/include/uapi/asm/bootparam.h 
b/arch/x86/include/uapi/asm/bootparam.h
index 60733f137e9a..c895df5482c5 100644
--- a/arch/x86/include/uapi/asm/bootparam.h
+++ b/arch/x86/include/uapi/asm/bootparam.h
@@ -29,6 +29,8 @@
 #define XLF_EFI_HANDOVER_32(1<<2)
 #define XLF_EFI_HANDOVER_64(1<<3)
 #define XLF_EFI_KEXEC  (1<<4)
+#define XLF_5LEVEL (1<<5)
+#define XLF_5LEVEL_ENABLED (1<<6)
 
 #ifndef __ASSEMBLY__
 
-- 
2.17.2