svn commit: r354913 - head/sys/dev/random

Conrad Meyer cem at FreeBSD.org
Wed Nov 20 19:55:44 UTC 2019


Author: cem
Date: Wed Nov 20 19:55:43 2019
New Revision: 354913
URL: https://svnweb.freebsd.org/changeset/base/354913

Log:
  random/ivy: Trivial refactoring
  
  It is clearer to me to return success/error (true/false) instead of some
  retry count linked to the inline assembly implementation.
  
  No functional change.
  
  Approved by:	core(csprng) => csprng(markm)
  Differential Revision:	https://reviews.freebsd.org/D22454

Modified:
  head/sys/dev/random/ivy.c

Modified: head/sys/dev/random/ivy.c
==============================================================================
--- head/sys/dev/random/ivy.c	Wed Nov 20 19:43:34 2019	(r354912)
+++ head/sys/dev/random/ivy.c	Wed Nov 20 19:55:43 2019	(r354913)
@@ -59,7 +59,7 @@ static struct random_source random_ivy = {
 	.rs_read = random_ivy_read
 };
 
-static int
+static bool
 x86_rdrand_store(u_long *buf)
 {
 	u_long rndval;
@@ -75,10 +75,10 @@ x86_rdrand_store(u_long *buf)
 	    "2:"
 	    : "+r" (retry), "=r" (rndval) : : "cc");
 	*buf = rndval;
-	return (retry);
+	return (retry != 0);
 }
 
-static int
+static bool
 x86_rdseed_store(u_long *buf)
 {
 	u_long rndval;
@@ -94,17 +94,17 @@ x86_rdseed_store(u_long *buf)
 	    "2:"
 	    : "+r" (retry), "=r" (rndval) : : "cc");
 	*buf = rndval;
-	return (retry);
+	return (retry != 0);
 }
 
-static int
+static bool
 x86_unimpl_store(u_long *buf __unused)
 {
 
 	panic("%s called", __func__);
 }
 
-DEFINE_IFUNC(static, int, x86_rng_store, (u_long *buf))
+DEFINE_IFUNC(static, bool, x86_rng_store, (u_long *buf))
 {
 	has_rdrand = (cpu_feature2 & CPUID2_RDRAND);
 	has_rdseed = (cpu_stdext_feature & CPUID_STDEXT_RDSEED);
@@ -127,7 +127,7 @@ random_ivy_read(void *buf, u_int c)
 	KASSERT(c % sizeof(*b) == 0, ("partial read %d", c));
 	b = buf;
 	for (count = c; count > 0; count -= sizeof(*b)) {
-		if (x86_rng_store(&rndval) == 0)
+		if (!x86_rng_store(&rndval))
 			break;
 		*b++ = rndval;
 	}


More information about the svn-src-head mailing list