Module Name:    src
Committed By:   msaitoh
Date:           Mon May 18 13:09:55 UTC 2015

Modified Files:
        src/sys/arch/x86/x86: cpu.c

Log Message:
 OOOOPS. Revert previous.


To generate a diff of this commit:
cvs rdiff -u -r1.114 -r1.115 src/sys/arch/x86/x86/cpu.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/arch/x86/x86/cpu.c
diff -u src/sys/arch/x86/x86/cpu.c:1.114 src/sys/arch/x86/x86/cpu.c:1.115
--- src/sys/arch/x86/x86/cpu.c:1.114	Mon May 18 13:04:21 2015
+++ src/sys/arch/x86/x86/cpu.c	Mon May 18 13:09:55 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.c,v 1.114 2015/05/18 13:04:21 msaitoh Exp $	*/
+/*	$NetBSD: cpu.c,v 1.115 2015/05/18 13:09:55 msaitoh Exp $	*/
 
 /*-
  * Copyright (c) 2000-2012 NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.114 2015/05/18 13:04:21 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.115 2015/05/18 13:09:55 msaitoh Exp $");
 
 #include "opt_ddb.h"
 #include "opt_mpbios.h"		/* for MPDEBUG */
@@ -76,23 +76,18 @@ __KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.11
 #include <sys/proc.h>
 #include <sys/systm.h>
 #include <sys/device.h>
-#include <sys/kernel.h>
 #include <sys/kmem.h>
 #include <sys/cpu.h>
 #include <sys/cpufreq.h>
 #include <sys/idle.h>
 #include <sys/atomic.h>
 #include <sys/reboot.h>
-#include <sys/cprng.h>
-#include <sys/rndpool.h>
-#include <sys/rndsource.h>
 
 #include <uvm/uvm.h>
 
 #include "acpica.h"		/* for NACPICA, for mp_verbose */
 
 #include <machine/cpufunc.h>
-#include <machine/cputypes.h>
 #include <machine/cpuvar.h>
 #include <machine/pmap.h>
 #include <machine/vmparam.h>
@@ -140,9 +135,6 @@ struct cpu_softc {
 	device_t sc_dev;		/* device tree glue */
 	struct cpu_info *sc_info;	/* pointer to CPU info */
 	bool sc_wasonline;
-	callout_t	sc_rnd_callout;
-	krndsource_t	sc_rnd_source;
-	size_t		sc_rnd_need;
 };
 
 #ifdef MULTIPROCESSOR
@@ -487,89 +479,9 @@ cpu_attach(device_t parent, device_t sel
 	(void)config_defer(self, cpu_defer);
 }
 
-void rdrand(size_t, void *);
-
-void
-rdrand(size_t bytes, void *priv)
-{
-	struct cpu_softc *sc = priv;
-#ifdef i386
-	uint32_t r, valid;
-#else
-	uint64_t r, valid;
-#endif
-	uint32_t len = sizeof(r);
-	int i;
-
-	while (bytes > 0) {
-		for (i = 0; i < 4; i++) {
-			__asm volatile(
-				"xor	%1, %1\n\t"
-				"rdrand	%0\n\t"
-				"rcl	$1, %1\n"
-				: "=r" (r), "=r" (valid) : : "cc");
-
-			if (valid) {
-#if 0
-#ifdef i386
-				printf("RND 0x%08x\n", r);
-#else
-				printf("RND 0x%016" PRIx64 "\n", r);
-#endif
-#endif
-				rnd_add_data(&sc->sc_rnd_source, &r, len,
-				    len * NBBY);
-				bytes -= len;
-				break;
-			}
-		}
-	}
-}
-
-static void x86_rnd_get(void *);
-void x86_rnd_callback(size_t, void *);
-
-/* Callback */
-void
-x86_rnd_callback(size_t bytes, void *priv)
-{
-	struct cpu_softc *sc = priv;
-
-	sc->sc_rnd_need = bytes;
-	callout_reset(&sc->sc_rnd_callout, 0, x86_rnd_get, sc);
-}
-
-/* Callout */
-static void
-x86_rnd_get(void *priv)
-{
-	struct cpu_softc *sc = priv;
-
-	rdrand(sc->sc_rnd_need, sc);
-	sc->sc_rnd_need = 16; /* By default */
-	callout_reset(&sc->sc_rnd_callout, hz, x86_rnd_get, sc);
-}
-
 static void
 cpu_defer(device_t self)
 {
-	struct cpu_softc *sc = device_private(self);
-	char rnd_name[sizeof(sc->sc_rnd_source.name)];
-
-	if ((cpu_vendor == CPUVENDOR_INTEL)
-	    && (cpu_feature[1] & CPUID2_RDRAND)) {
-		aprint_normal_dev(sc->sc_dev, "have rdrand\n");
-		sc->sc_rnd_need = 16; /* By default */
-		rndsource_setcb(&sc->sc_rnd_source, x86_rnd_callback, sc);
-		snprintf(rnd_name, sizeof(rnd_name), "rdrand-%s",
-		    device_xname(sc->sc_dev));
-		rnd_attach_source(&sc->sc_rnd_source, rnd_name,
-				  RND_TYPE_RNG,
-				  RND_FLAG_COLLECT_VALUE|RND_FLAG_HASCB);
-		callout_init(&sc->sc_rnd_callout, CALLOUT_MPSAFE);
-		callout_reset(&sc->sc_rnd_callout, hz, x86_rnd_get, sc);
-	}
-
 	cpu_rescan(self, NULL, NULL);
 }
 

Reply via email to