Blob Blame History Raw
From: Alexander Egorenkov <egorenar@linux.ibm.com>
Date: Mon, 5 Jul 2021 19:37:25 +0200
Subject: s390/boot: disable Secure Execution in dump mode
Git-commit: 42c89439b9fa0368fabd4e1564bdb4a05aeed7eb
Patch-mainline: v5.15-rc1
References: bsc#1191740 LTC#194817

A dump kernel is neither required nor able to support Secure Execution.

Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com>
Reviewed-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Acked-by: Petr Tesarik <ptesarik@suse.com>
---
 arch/s390/boot/startup.c |    1 +
 arch/s390/boot/uv.c      |    8 ++++++++
 arch/s390/boot/uv.h      |    2 ++
 3 files changed, 11 insertions(+)

--- a/arch/s390/boot/startup.c
+++ b/arch/s390/boot/startup.c
@@ -298,6 +298,7 @@ void startup_kernel(void)
 	sclp_early_read_info();
 	setup_boot_command_line();
 	parse_boot_command_line();
+	sanitize_prot_virt_host();
 	setup_ident_map_size(detect_memory());
 	setup_vmalloc_size();
 	setup_kernel_memory_layout();
--- a/arch/s390/boot/uv.c
+++ b/arch/s390/boot/uv.c
@@ -1,8 +1,10 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <asm/uv.h>
+#include <asm/boot_data.h>
 #include <asm/facility.h>
 #include <asm/sections.h>
 
+#include "boot.h"
 #include "uv.h"
 
 /* will be used in arch/s390/kernel/uv.c */
@@ -71,4 +73,10 @@ void adjust_to_uv_max(unsigned long *vma
 	if (has_uv_sec_stor_limit())
 		*vmax = min_t(unsigned long, *vmax, uv_info.max_sec_stor_addr);
 }
+
+void sanitize_prot_virt_host(void)
+{
+	if (OLDMEM_BASE || (ipl_block_valid && is_ipl_block_dump()))
+		prot_virt_host = 0;
+}
 #endif
--- a/arch/s390/boot/uv.h
+++ b/arch/s390/boot/uv.h
@@ -4,8 +4,10 @@
 
 #if IS_ENABLED(CONFIG_KVM)
 void adjust_to_uv_max(unsigned long *vmax);
+void sanitize_prot_virt_host(void);
 #else
 static inline void adjust_to_uv_max(unsigned long *vmax) {}
+static inline void sanitize_prot_virt_host(void) {}
 #endif
 
 #if defined(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) || IS_ENABLED(CONFIG_KVM)