From: Heiko Carstens Date: Sun, 5 Feb 2017 22:03:18 +0000 (+0100) Subject: s390: use correct input data address for setup_randomness X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=4920e3cf77347d7d7373552d4839e8d832321313;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git s390: use correct input data address for setup_randomness The current implementation of setup_randomness uses the stack address and therefore the pointer to the SYSIB 3.2.2 block as input data address. Furthermore the length of the input data is the number of virtual-machine description blocks which is typically one. This means that typically a single zero byte is fed to add_device_randomness. Fix both of these and use the address of the first virtual machine description block as input data address and also use the correct length. Fixes: bcfcbb6bae64 ("s390: add system information as device randomness") Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky --- diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index aaef71ff7ab7..f92c78277680 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c @@ -824,7 +824,7 @@ static void __init setup_randomness(void) vmms = (struct sysinfo_3_2_2 *) memblock_alloc(PAGE_SIZE, PAGE_SIZE); if (stsi(vmms, 3, 2, 2) == 0 && vmms->count) - add_device_randomness(&vmms, vmms->count); + add_device_randomness(&vmms->vm, sizeof(vmms->vm[0]) * vmms->count); memblock_free((unsigned long) vmms, PAGE_SIZE); }