> From: Stuart Henderson <[email protected]> > Date: Sun, 8 Feb 2015 11:18:30 +0000 > > I just noticed this in old mails (not committed), there isn't really any > downside to this is there?
The locore.s fix looks fine to me. > In gmane.os.openbsd.misc, Miod wrote: > >> On 2014-04-26, Miod Vallat <[email protected]> wrote: > >> >> The question I have is can I disable the random number generator?s use > >> >> of that instruction? I?d rather be on -current than years old. > >> > > >> > Apart from the following hammer, I see no easy way to achieve this. > >> > > >> > Index: i386/machdep.c > >> >=================================================================== > >> > RCS file: /cvs/src/sys/arch/i386/i386/machdep.c,v > >> > retrieving revision 1.536 > >> > diff -u -p -r1.536 machdep.c > >> > --- i386/machdep.c 29 Mar 2014 18:09:29 -0000 1.536 > >> > +++ i386/machdep.c 26 Apr 2014 19:13:14 -0000 > >> > @@ -1964,7 +1964,8 @@ identifycpu(struct cpu_info *ci) > >> > } > >> > > >> > if (ci->ci_flags & CPUF_PRIMARY) { > >> > - if (cpu_ecxfeature & CPUIDECX_RDRAND) > >> > + if (cpu_ecxfeature & CPUIDECX_RDRAND && > >> > + vendor != CPUVENDOR_CYRIX) > >> > has_rdrand = 1; > >> > #ifndef SMALL_KERNEL > >> > if (ci->ci_feature_sefflags & SEFF0EBX_SMAP) > >> > > >> > > >> > >> Funnily enough it's handled here: > > http://rt.openssl.org/m/ticket/history?id=3005 > > > Then this ought to work as well: > > > > Index: i386/locore.s > >=================================================================== > > RCS file: /cvs/src/sys/arch/i386/i386/locore.s,v > > retrieving revision 1.147 > > diff -u -p -r1.147 locore.s > > --- i386/locore.s 13 Jun 2013 02:26:53 -0000 1.147 > > +++ i386/locore.s 26 Apr 2014 21:21:01 -0000 > > @@ -401,6 +401,7 @@ try586: /* Use the `cpuid' instruction. > > movl $0, RELOC(_C_LABEL(cpu_vendor))+12 > > > > movl $1,%eax > > + xorl %ecx,%ecx > > cpuid > > movl %eax,RELOC(_C_LABEL(cpu_id)) # store cpu_id and features > > movl %ebx,RELOC(_C_LABEL(cpu_miscinfo)) > > > > > >
