mirror of
https://github.com/torvalds/linux.git
synced 2026-09-26 10:02:02 +02:00
KVM: selftests: Initialize the default/global pRNG during kvm_selftest_init()
Initialize the default kvm_rng during selftest initialization so that the pRNG can be used by tests before creating a VM. As pointed out by Sashiko, failure to actually initialize the generate makes it decidedly not random. Link: https://patch.msgid.link/20260626213534.3866178-5-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
e0bd29eddf
commit
bae85cd758
|
|
@ -24,6 +24,13 @@ u32 kvm_random_seed;
|
|||
struct kvm_random_state kvm_rng;
|
||||
static u32 last_kvm_seed;
|
||||
|
||||
static void kvm_seed_rng(u32 seed)
|
||||
{
|
||||
kvm_random_seed = last_kvm_seed = seed;
|
||||
pr_info("Random seed: 0x%x\n", kvm_random_seed);
|
||||
kvm_rng = new_kvm_random_state(kvm_random_seed);
|
||||
}
|
||||
|
||||
static size_t vcpu_mmap_sz(void);
|
||||
|
||||
int __open_path_or_exit(const char *path, int flags, const char *enoent_help)
|
||||
|
|
@ -515,11 +522,9 @@ struct kvm_vm *__vm_create(struct vm_shape shape, u32 nr_runnable_vcpus,
|
|||
slot0 = memslot2region(vm, 0);
|
||||
ucall_init(vm, slot0->region.guest_phys_addr + slot0->region.memory_size);
|
||||
|
||||
if (kvm_random_seed != last_kvm_seed) {
|
||||
pr_info("Random seed: 0x%x\n", kvm_random_seed);
|
||||
last_kvm_seed = kvm_random_seed;
|
||||
}
|
||||
kvm_rng = new_kvm_random_state(kvm_random_seed);
|
||||
if (kvm_random_seed != last_kvm_seed)
|
||||
kvm_seed_rng(kvm_random_seed);
|
||||
|
||||
sync_global_to_guest(vm, kvm_rng);
|
||||
|
||||
kvm_arch_vm_post_create(vm, nr_runnable_vcpus);
|
||||
|
|
@ -2279,8 +2284,7 @@ void __attribute((constructor)) kvm_selftest_init(void)
|
|||
sigaction(SIGILL, &sig_sa, NULL);
|
||||
sigaction(SIGFPE, &sig_sa, NULL);
|
||||
|
||||
kvm_random_seed = last_kvm_seed = random();
|
||||
pr_info("Random seed: 0x%x\n", kvm_random_seed);
|
||||
kvm_seed_rng(random());
|
||||
|
||||
kvm_selftest_arch_init();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user