--- /dev/null
+From 91cfc88c66bf8ab95937606569670cf67fa73e09 Mon Sep 17 00:00:00 2001
+From: Laura Abbott <labbott@redhat.com>
+Date: Sat, 20 Jan 2018 17:14:02 -0800
+Subject: x86: Use __nostackprotect for sme_encrypt_kernel
+
+From: Laura Abbott <labbott@redhat.com>
+
+commit 91cfc88c66bf8ab95937606569670cf67fa73e09 upstream.
+
+Commit bacf6b499e11 ("x86/mm: Use a struct to reduce parameters for SME
+PGD mapping") moved some parameters into a structure.
+
+The structure was large enough to trigger the stack protection canary in
+sme_encrypt_kernel which doesn't work this early, causing reboots.
+
+Mark sme_encrypt_kernel appropriately to not use the canary.
+
+Fixes: bacf6b499e11 ("x86/mm: Use a struct to reduce parameters for SME PGD mapping")
+Signed-off-by: Laura Abbott <labbott@redhat.com>
+Cc: Tom Lendacky <thomas.lendacky@amd.com>
+Cc: Ingo Molnar <mingo@kernel.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/mm/mem_encrypt.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/x86/mm/mem_encrypt.c
++++ b/arch/x86/mm/mem_encrypt.c
+@@ -487,7 +487,7 @@ static unsigned long __init sme_pgtable_
+ return total;
+ }
+
+-void __init sme_encrypt_kernel(struct boot_params *bp)
++void __init __nostackprotector sme_encrypt_kernel(struct boot_params *bp)
+ {
+ unsigned long workarea_start, workarea_end, workarea_len;
+ unsigned long execute_start, execute_end, execute_len;