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