From: tuxoko Date: Sat, 8 Oct 2016 03:59:46 +0000 (-0700) Subject: Fix out-of-bound in per_cpu in spl_random_init X-Git-Tag: spl-0.7.0-rc2~4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0d267566650d89bde8bd5ec4665749810d5bafc7;p=spl Fix out-of-bound in per_cpu in spl_random_init When iterating per_cpu values, we need to use for_each_possible_cpu. While NR_CPUS indicates the number of CPU supported by the kernel, it might not initialize all of them if the kernel decides it's not possible to use them. Reviewed-by: Brian Behlendorf Signed-off-by: Chunwei Chen Closes #578 --- diff --git a/module/spl/spl-generic.c b/module/spl/spl-generic.c index c04cb53..ce60963 100644 --- a/module/spl/spl-generic.c +++ b/module/spl/spl-generic.c @@ -638,7 +638,7 @@ spl_random_init(void) "0x%016llx%016llx.", cpu_to_be64(s[0]), cpu_to_be64(s[1])); } - for (i = 0; i < NR_CPUS; i++) { + for_each_possible_cpu(i) { uint64_t *wordp = per_cpu(spl_pseudo_entropy, i); spl_rand_jump(s);