Re: 2.6.16-rc4-mm1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In-Reply-To: <[email protected]>

On Tue, 21 Feb 2006 at 13:41:39 -0800, Andrew Morton wrote:

> None of these are must-have fixes, are they?   I had them queued for 2.6.17.

Well i386-allow-disabling-x86_feature_sep-at-boot.patch is for me.
I had to backport it to -rc4 for testing differences between sysenter
and int80 syscall paths.  I could live without it (I once forgot to apply
it and wondered why it wasn't working), but anyway here's the backport:


From: Chuck Ebbert <[email protected]>

Allow the x86 "sep" feature to be disabled at bootup.  This forces use of the
int80 vsyscall.  Mainly for testing or benchmarking the int80 vsyscall code.

Signed-off-by: Chuck Ebbert <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>

---

 Documentation/kernel-parameters.txt |    6 +++++-
 arch/i386/kernel/cpu/common.c       |   15 ++++++++++++++-
 2 files changed, 19 insertions(+), 2 deletions(-)

--- 2.6.16-rc3-nb.orig/Documentation/kernel-parameters.txt
+++ 2.6.16-rc3-nb/Documentation/kernel-parameters.txt
@@ -1002,7 +1002,9 @@ running once the system is up.
 			noexec=on: enable non-executable mappings (default)
 			noexec=off: disable nn-executable mappings
 
-	nofxsr		[BUGS=IA-32]
+	nofxsr		[BUGS=IA-32] Disables x86 floating point extended
+			register save and restore. The kernel will only save
+			legacy floating-point registers on task switch.
 
 	nohlt		[BUGS=ARM]
 
@@ -1045,6 +1047,8 @@ running once the system is up.
 
 	nosbagart	[IA-64]
 
+	nosep		[BUGS=IA-32] Disables x86 SYSENTER/SYSEXIT support.
+
 	nosmp		[SMP] Tells an SMP kernel to act as a UP kernel.
 
 	nosync		[HW,M68K] Disables sync negotiation for all devices.
--- 2.6.16-rc3-nb.orig/arch/i386/kernel/cpu/common.c
+++ 2.6.16-rc3-nb/arch/i386/kernel/cpu/common.c
@@ -22,8 +22,9 @@ DEFINE_PER_CPU(unsigned char, cpu_16bit_
 EXPORT_PER_CPU_SYMBOL(cpu_16bit_stack);
 
 static int cachesize_override __devinitdata = -1;
-static int disable_x86_fxsr __devinitdata = 0;
+static int disable_x86_fxsr __devinitdata;
 static int disable_x86_serial_nr __devinitdata = 1;
+static int disable_x86_sep __devinitdata;
 
 struct cpu_dev * cpu_devs[X86_VENDOR_NUM] = {};
 
@@ -183,6 +184,14 @@ static int __init x86_fxsr_setup(char * 
 __setup("nofxsr", x86_fxsr_setup);
 
 
+static int __init x86_sep_setup(char * s)
+{
+	disable_x86_sep = 1;
+	return 1;
+}
+__setup("nosep", x86_sep_setup);
+
+
 /* Standard macro to see if a specific flag is changeable */
 static inline int flag_is_changeable_p(u32 flag)
 {
@@ -401,6 +410,10 @@ void __devinit identify_cpu(struct cpuin
 		clear_bit(X86_FEATURE_XMM, c->x86_capability);
 	}
 
+	/* SEP disabled? */
+	if (disable_x86_sep)
+		clear_bit(X86_FEATURE_SEP, c->x86_capability);
+
 	if (disable_pse)
 		clear_bit(X86_FEATURE_PSE, c->x86_capability);
 
-- 
Chuck
"Equations are the Devil's sentences."  --Stephen Colbert
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux