s390/setup: convert start and end initrd pointers to virtual
authorAlexander Gordeev <agordeev@linux.ibm.com>
Thu, 7 Oct 2021 13:01:39 +0000 (15:01 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Tue, 26 Oct 2021 13:21:28 +0000 (15:21 +0200)
Variables initrd_start and initrd_end are expected to hold
virtual memory pointers, not physical.

Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/kernel/setup.c

index 9dbde3697bdf882085860985e12627a8305e8de1..860a4e6ebaf953d883b26a4f2aa04e76a9131745 100644 (file)
@@ -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