diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index 9dbde3697bdf882085860985e12627a8305e8de1..860a4e6ebaf953d883b26a4f2aa04e76a9131745 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -719,7 +719,7 @@ static void __init reserve_initrd(void)
 #ifdef CONFIG_BLK_DEV_INITRD
 	if (!initrd_data.start || !initrd_data.size)
 		return;
-	initrd_start = initrd_data.start;
+	initrd_start = (unsigned long)__va(initrd_data.start);
 	initrd_end = initrd_start + initrd_data.size;
 	memblock_reserve(initrd_data.start, initrd_data.size);
 #endif