Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c752a93 authored by Suresh Siddha's avatar Suresh Siddha Committed by H. Peter Anvin
Browse files

x86: introduce noxsave boot parameter



Introduce "noxsave" boot parameter which will disable the cpu's xsave/xrstor
capabilities. Useful for debugging and working around xsave related issues.

[ Impact: make it possible to debug problems in the field ]

Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
parent bca23dba
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -1535,6 +1535,10 @@ and is between 256 and 4096 characters. It is defined in the file
			register save and restore. The kernel will only save
			register save and restore. The kernel will only save
			legacy floating-point registers on task switch.
			legacy floating-point registers on task switch.


	noxsave		[BUGS=X86] Disables x86 extended register state save
			and restore using xsave. The kernel will fallback to
			enabling legacy floating-point and sse state.

	nohlt		[BUGS=ARM,SH] Tells the kernel that the sleep(SH) or
	nohlt		[BUGS=ARM,SH] Tells the kernel that the sleep(SH) or
			wfi(ARM) instruction doesn't work correctly and not to
			wfi(ARM) instruction doesn't work correctly and not to
			use it. This is also useful when using JTAG debugger.
			use it. This is also useful when using JTAG debugger.
+7 −0
Original line number Original line Diff line number Diff line
@@ -114,6 +114,13 @@ DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
} };
} };
EXPORT_PER_CPU_SYMBOL_GPL(gdt_page);
EXPORT_PER_CPU_SYMBOL_GPL(gdt_page);


static int __init x86_xsave_setup(char *s)
{
	setup_clear_cpu_cap(X86_FEATURE_XSAVE);
	return 1;
}
__setup("noxsave", x86_xsave_setup);

#ifdef CONFIG_X86_32
#ifdef CONFIG_X86_32
static int cachesize_override __cpuinitdata = -1;
static int cachesize_override __cpuinitdata = -1;
static int disable_x86_serial_nr __cpuinitdata = 1;
static int disable_x86_serial_nr __cpuinitdata = 1;