diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-30 11:41:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-04-30 11:41:21 -0400 |
commit | 1e2f5b598aa56c3978c2e623f72e9656a565c6c9 (patch) | |
tree | 31b3a7555ac7c1d9a856adc0436ed9943c9cab36 /arch/x86/kernel | |
parent | f9b3bcfbc43ac80f2019a5093ad9a1e624e611b1 (diff) | |
parent | 4d681be3c33dd74efffbe2a8f70634f7128602ec (diff) |
Merge branch 'x86-paravirt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 paravirt update from Ingo Molnar:
"Various paravirtualization related changes - the biggest one makes
guest support optional via CONFIG_HYPERVISOR_GUEST"
* 'x86-paravirt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86, wakeup, sleep: Use pvops functions for changing GDT entries
x86, xen, gdt: Remove the pvops variant of store_gdt.
x86-32, gdt: Store/load GDT for ACPI S3 or hibernation/resume path is not needed
x86-64, gdt: Store/load GDT for ACPI S3 or hibernate/resume path is not needed.
x86: Make Linux guest support optional
x86, Kconfig: Move PARAVIRT_DEBUG into the paravirt menu
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r-- | arch/x86/kernel/acpi/sleep.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/acpi/wakeup_32.S | 3 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/Makefile | 3 | ||||
-rw-r--r-- | arch/x86/kernel/doublefault_32.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/paravirt.c | 1 |
5 files changed, 4 insertions, 7 deletions
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c index 0532f5d6e4ef..b44577bc9744 100644 --- a/arch/x86/kernel/acpi/sleep.c +++ b/arch/x86/kernel/acpi/sleep.c | |||
@@ -46,7 +46,7 @@ int acpi_suspend_lowlevel(void) | |||
46 | header->pmode_behavior = 0; | 46 | header->pmode_behavior = 0; |
47 | 47 | ||
48 | #ifndef CONFIG_64BIT | 48 | #ifndef CONFIG_64BIT |
49 | store_gdt((struct desc_ptr *)&header->pmode_gdt); | 49 | native_store_gdt((struct desc_ptr *)&header->pmode_gdt); |
50 | 50 | ||
51 | if (!rdmsr_safe(MSR_EFER, | 51 | if (!rdmsr_safe(MSR_EFER, |
52 | &header->pmode_efer_low, | 52 | &header->pmode_efer_low, |
diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S index ced4638c8341..d1daa66ab162 100644 --- a/arch/x86/kernel/acpi/wakeup_32.S +++ b/arch/x86/kernel/acpi/wakeup_32.S | |||
@@ -18,7 +18,6 @@ wakeup_pmode_return: | |||
18 | movw %ax, %gs | 18 | movw %ax, %gs |
19 | 19 | ||
20 | # reload the gdt, as we need the full 32 bit address | 20 | # reload the gdt, as we need the full 32 bit address |
21 | lgdt saved_gdt | ||
22 | lidt saved_idt | 21 | lidt saved_idt |
23 | lldt saved_ldt | 22 | lldt saved_ldt |
24 | ljmp $(__KERNEL_CS), $1f | 23 | ljmp $(__KERNEL_CS), $1f |
@@ -44,7 +43,6 @@ bogus_magic: | |||
44 | 43 | ||
45 | 44 | ||
46 | save_registers: | 45 | save_registers: |
47 | sgdt saved_gdt | ||
48 | sidt saved_idt | 46 | sidt saved_idt |
49 | sldt saved_ldt | 47 | sldt saved_ldt |
50 | str saved_tss | 48 | str saved_tss |
@@ -93,7 +91,6 @@ ENTRY(saved_magic) .long 0 | |||
93 | ENTRY(saved_eip) .long 0 | 91 | ENTRY(saved_eip) .long 0 |
94 | 92 | ||
95 | # saved registers | 93 | # saved registers |
96 | saved_gdt: .long 0,0 | ||
97 | saved_idt: .long 0,0 | 94 | saved_idt: .long 0,0 |
98 | saved_ldt: .long 0 | 95 | saved_ldt: .long 0 |
99 | saved_tss: .long 0 | 96 | saved_tss: .long 0 |
diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile index deef0399fc78..b0684e4a73aa 100644 --- a/arch/x86/kernel/cpu/Makefile +++ b/arch/x86/kernel/cpu/Makefile | |||
@@ -14,7 +14,6 @@ CFLAGS_common.o := $(nostackp) | |||
14 | 14 | ||
15 | obj-y := intel_cacheinfo.o scattered.o topology.o | 15 | obj-y := intel_cacheinfo.o scattered.o topology.o |
16 | obj-y += proc.o capflags.o powerflags.o common.o | 16 | obj-y += proc.o capflags.o powerflags.o common.o |
17 | obj-y += vmware.o hypervisor.o mshyperv.o | ||
18 | obj-y += rdrand.o | 17 | obj-y += rdrand.o |
19 | obj-y += match.o | 18 | obj-y += match.o |
20 | 19 | ||
@@ -42,6 +41,8 @@ obj-$(CONFIG_MTRR) += mtrr/ | |||
42 | 41 | ||
43 | obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o perf_event_amd_ibs.o | 42 | obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o perf_event_amd_ibs.o |
44 | 43 | ||
44 | obj-$(CONFIG_HYPERVISOR_GUEST) += vmware.o hypervisor.o mshyperv.o | ||
45 | |||
45 | quiet_cmd_mkcapflags = MKCAP $@ | 46 | quiet_cmd_mkcapflags = MKCAP $@ |
46 | cmd_mkcapflags = $(CONFIG_SHELL) $(srctree)/$(src)/mkcapflags.sh $< $@ | 47 | cmd_mkcapflags = $(CONFIG_SHELL) $(srctree)/$(src)/mkcapflags.sh $< $@ |
47 | 48 | ||
diff --git a/arch/x86/kernel/doublefault_32.c b/arch/x86/kernel/doublefault_32.c index 37250fe490b1..155a13f33ed8 100644 --- a/arch/x86/kernel/doublefault_32.c +++ b/arch/x86/kernel/doublefault_32.c | |||
@@ -20,7 +20,7 @@ static void doublefault_fn(void) | |||
20 | struct desc_ptr gdt_desc = {0, 0}; | 20 | struct desc_ptr gdt_desc = {0, 0}; |
21 | unsigned long gdt, tss; | 21 | unsigned long gdt, tss; |
22 | 22 | ||
23 | store_gdt(&gdt_desc); | 23 | native_store_gdt(&gdt_desc); |
24 | gdt = gdt_desc.address; | 24 | gdt = gdt_desc.address; |
25 | 25 | ||
26 | printk(KERN_EMERG "PANIC: double fault, gdt at %08lx [%d bytes]\n", gdt, gdt_desc.size); | 26 | printk(KERN_EMERG "PANIC: double fault, gdt at %08lx [%d bytes]\n", gdt, gdt_desc.size); |
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c index 8bfb335f74bb..cd6de64cc480 100644 --- a/arch/x86/kernel/paravirt.c +++ b/arch/x86/kernel/paravirt.c | |||
@@ -360,7 +360,6 @@ struct pv_cpu_ops pv_cpu_ops = { | |||
360 | .set_ldt = native_set_ldt, | 360 | .set_ldt = native_set_ldt, |
361 | .load_gdt = native_load_gdt, | 361 | .load_gdt = native_load_gdt, |
362 | .load_idt = native_load_idt, | 362 | .load_idt = native_load_idt, |
363 | .store_gdt = native_store_gdt, | ||
364 | .store_idt = native_store_idt, | 363 | .store_idt = native_store_idt, |
365 | .store_tr = native_store_tr, | 364 | .store_tr = native_store_tr, |
366 | .load_tls = native_load_tls, | 365 | .load_tls = native_load_tls, |