DF-2822 / fix.diff
--- a/sys/kern/kern_nrandom.c 2026-06-29 12:51:19.000000000 +0000 +++ b/sys/kern/kern_nrandom.c 2026-10-26 00:25:42.777043079 +0000 @@ -656,7 +656,10 @@ while (csprng_pcpu && bytes) { n = bytes; if (srcid & RAND_SRCF_PCPU) { - state = &csprng_pcpu[mycpu->gd_cpuid]; + if (csprng_pcpu == &csprng_boot) + state = &csprng_boot; + else + state = &csprng_pcpu[mycpu->gd_cpuid]; } else { state = iterate_csprng_state(bytes); if (n > 256) @@ -694,7 +697,10 @@ kprintf("read_random: csprng not yet ready\n"); return 0; } - state = &csprng_pcpu[mycpu->gd_cpuid]; + if (csprng_pcpu == &csprng_boot) + state = &csprng_boot; /* array not installed yet */ + else + state = &csprng_pcpu[mycpu->gd_cpuid]; spin_lock(&state->spin); if (rand_mode == 0) { |