]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
s390: use correct input data address for setup_randomness
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Sun, 5 Feb 2017 22:03:18 +0000 (23:03 +0100)
committerTim Gardner <tim.gardner@canonical.com>
Wed, 15 Mar 2017 15:32:11 +0000 (10:32 -0500)
BugLink: http://bugs.launchpad.net/bugs/1673118
commit 4920e3cf77347d7d7373552d4839e8d832321313 upstream.

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 <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
arch/s390/kernel/setup.c

index b2f47804bd0359ee67c953725a42f630a10532f6..5401e79d6c32f2fff04f7d580782280a516569cb 100644 (file)
@@ -822,7 +822,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);
 }