summaryrefslogtreecommitdiffstats
path: root/arch/s390/boot
diff options
context:
space:
mode:
authorVasily Gorbik2019-04-01 19:11:04 +0200
committerMartin Schwidefsky2019-04-10 17:47:22 +0200
commitdb9492cef45efc347beed7b617dfdfac399f662b (patch)
tree46ef6019d8dc54a74a021a68b288537725b294a9 /arch/s390/boot
parents390/uv: introduce guest side ultravisor code (diff)
downloadkernel-qcow2-linux-db9492cef45efc347beed7b617dfdfac399f662b.tar.gz
kernel-qcow2-linux-db9492cef45efc347beed7b617dfdfac399f662b.tar.xz
kernel-qcow2-linux-db9492cef45efc347beed7b617dfdfac399f662b.zip
s390/protvirt: add memory sharing for diag 308 set/store
Add sharing of ipl parameter block for diag 308 set/store calls to allow kvm access in protected virtualization environment. Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/boot')
-rw-r--r--arch/s390/boot/ipl_parm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/s390/boot/ipl_parm.c b/arch/s390/boot/ipl_parm.c
index dc0438d08751..385d0c7a9635 100644
--- a/arch/s390/boot/ipl_parm.c
+++ b/arch/s390/boot/ipl_parm.c
@@ -7,6 +7,7 @@
#include <asm/sections.h>
#include <asm/boot_data.h>
#include <asm/facility.h>
+#include <asm/uv.h>
#include "boot.h"
char __bootdata(early_command_line)[COMMAND_LINE_SIZE];
@@ -45,7 +46,9 @@ void store_ipl_parmblock(void)
{
int rc;
+ uv_set_shared(__pa(&ipl_block));
rc = __diag308(DIAG308_STORE, &ipl_block);
+ uv_remove_shared(__pa(&ipl_block));
if (rc == DIAG308_RC_OK &&
ipl_block.hdr.version <= IPL_MAX_SUPPORTED_VERSION)
ipl_block_valid = 1;