summaryrefslogtreecommitdiff
path: root/arch/x86/boot
diff options
context:
space:
mode:
authorArvind Sankar <nivedita@alum.mit.edu>2020-02-02 12:13:50 -0500
committerArd Biesheuvel <ardb@kernel.org>2020-02-22 23:37:37 +0100
commitcae0e431a02cd63fecaf677ae166f184644125a7 (patch)
treebc1c810dc236591c3d11ee07d604a25706f8bebe /arch/x86/boot
parent32d009137a5646947d450da6fa641a1f4dc1e42c (diff)
x86/boot: Clear direction and interrupt flags in startup_64
startup_32 already clears these flags on entry, do it in startup_64 as well for consistency. The direction flag in particular is not specified to be cleared in the boot protocol documentation, and we currently call into C code (paging_prepare) without explicitly clearing it. Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu> Link: https://lore.kernel.org/r/20200202171353.3736319-5-nivedita@alum.mit.edu Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Diffstat (limited to 'arch/x86/boot')
-rw-r--r--arch/x86/boot/compressed/head_64.S3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
index 27eb2a6786db..69cc6c68741e 100644
--- a/arch/x86/boot/compressed/head_64.S
+++ b/arch/x86/boot/compressed/head_64.S
@@ -264,6 +264,9 @@ SYM_CODE_START(startup_64)
* and command line.
*/
+ cld
+ cli
+
/* Setup data segments. */
xorl %eax, %eax
movl %eax, %ds