socsvn commit: r271274 - in soc2014/op/freebsd-base/sys: kern x86/include
op at FreeBSD.org
op at FreeBSD.org
Wed Jul 23 13:07:02 UTC 2014
Author: op
Date: Wed Jul 23 13:07:01 2014
New Revision: 271274
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=271274
Log:
KSP: fix xsaveopt
NOTE: the cpuid_count part must be refactor, probably place into idencpu.c
Signed-off-by: Oliver Pinter <oliver.pntr at gmail.com>
git: https://github.com/opntr/opBSD/tree/op/gsoc2014/kpatch
Modified:
soc2014/op/freebsd-base/sys/kern/kern_selfpatch.c
soc2014/op/freebsd-base/sys/x86/include/selfpatch-asmacros.h
Modified: soc2014/op/freebsd-base/sys/kern/kern_selfpatch.c
==============================================================================
--- soc2014/op/freebsd-base/sys/kern/kern_selfpatch.c Wed Jul 23 13:06:51 2014 (r271273)
+++ soc2014/op/freebsd-base/sys/kern/kern_selfpatch.c Wed Jul 23 13:07:01 2014 (r271274)
@@ -100,6 +100,15 @@
if ((via_feature_xcrypt & p->feature) != 0)
return (true);
break;
+ case KSP_CPUID_EXTSTATE :
+ {
+ u_int cp[4];
+
+ cpuid_count(0xd, 0x1, cp);
+ if ((cp[0] & p->feature) != 0)
+ return (true);
+ }
+ break;
case KSP_SELFTEST:
if ((p->feature & KSP_FEATURE_SELFTEST) != 0)
return (true);
Modified: soc2014/op/freebsd-base/sys/x86/include/selfpatch-asmacros.h
==============================================================================
--- soc2014/op/freebsd-base/sys/x86/include/selfpatch-asmacros.h Wed Jul 23 13:06:51 2014 (r271273)
+++ soc2014/op/freebsd-base/sys/x86/include/selfpatch-asmacros.h Wed Jul 23 13:07:01 2014 (r271274)
@@ -37,6 +37,7 @@
#define KSP_CPUID_STDEXT 5
#define KSP_VIA_CPUID 6
#define KSP_VIA_CRYPT_CWLO 7
+#define KSP_CPUID_EXTSTATE 8
/*
* Intel Instruction Set Reference M-Z
@@ -76,8 +77,8 @@
.quad 0725b ; \
.int 0724b-0723b ; \
.int 0726b-0725b ; \
- .int KSP_CPUID2 ; \
- .int CPUID2_OSXSAVE ; \
+ .int KSP_CPUID_EXTSTATE ; \
+ .int CPUID_EXTSTATE_XSAVEOPT ; \
.quad 0 ; \
.popsection ;
More information about the svn-soc-all
mailing list