Module Name: src Committed By: riastradh Date: Sun Feb 28 20:36:08 UTC 2016
Modified Files: src/sys/kern: kern_rndq.c Log Message: Omit needless `if (RND_ENABLED(...))' in rnd_cpu_get. To generate a diff of this commit: cvs rdiff -u -r1.85 -r1.86 src/sys/kern/kern_rndq.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/kern_rndq.c diff -u src/sys/kern/kern_rndq.c:1.85 src/sys/kern/kern_rndq.c:1.86 --- src/sys/kern/kern_rndq.c:1.85 Sun Feb 28 20:24:23 2016 +++ src/sys/kern/kern_rndq.c Sun Feb 28 20:36:08 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_rndq.c,v 1.85 2016/02/28 20:24:23 riastradh Exp $ */ +/* $NetBSD: kern_rndq.c,v 1.86 2016/02/28 20:36:08 riastradh Exp $ */ /*- * Copyright (c) 1997-2013 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_rndq.c,v 1.85 2016/02/28 20:24:23 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_rndq.c,v 1.86 2016/02/28 20:36:08 riastradh Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -414,29 +414,27 @@ static struct { kmutex_t lock; /* unfortunately, must protect krndsource */ krndsource_t source; } rnd_cpu __cacheline_aligned; - + static void rnd_cpu_get(size_t bytes, void *priv) { krndsource_t *cpusrcp = priv; + cpu_rng_t buf[2 * RND_ENTROPY_THRESHOLD / sizeof(cpu_rng_t)]; + cpu_rng_t *bufp; + size_t cnt = __arraycount(buf); + size_t entropy = 0; + KASSERT(cpusrcp == &rnd_cpu.source); - if (RND_ENABLED(cpusrcp)) { - cpu_rng_t buf[2 * RND_ENTROPY_THRESHOLD / sizeof(cpu_rng_t)]; - cpu_rng_t *bufp; - size_t cnt = __arraycount(buf); - size_t entropy = 0; - - for (bufp = buf; bufp < buf + cnt; bufp++) { - entropy += cpu_rng(bufp); - } - if (__predict_true(entropy)) { - mutex_spin_enter(&rnd_cpu.lock); - rnd_add_data_sync(cpusrcp, buf, sizeof(buf), entropy); - explicit_memset(buf, 0, sizeof(buf)); - mutex_spin_exit(&rnd_cpu.lock); - } - } + for (bufp = buf; bufp < buf + cnt; bufp++) { + entropy += cpu_rng(bufp); + } + if (__predict_true(entropy)) { + mutex_spin_enter(&rnd_cpu.lock); + rnd_add_data_sync(cpusrcp, buf, sizeof(buf), entropy); + explicit_memset(buf, 0, sizeof(buf)); + mutex_spin_exit(&rnd_cpu.lock); + } } #endif