projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0814e0b
)
x86, 64-bit: __switch_to(): move arch_leave_lazy_cpu_mode() to the right place
author
Jeremy Fitzhardinge
<
[email protected]
>
Wed, 25 Jun 2008 04:19:23 +0000
(
00:19
-0400)
committer
Ingo Molnar
<
[email protected]
>
Tue, 8 Jul 2008 11:11:10 +0000
(13:11 +0200)
We must leave lazy mode before switching the %fs and %gs selectors.
Signed-off-by: Eduardo Habkost <
[email protected]
>
Signed-off-by: Jeremy Fitzhardinge <
[email protected]
>
Cc: xen-devel <
[email protected]
>
Cc: Stephen Tweedie <
[email protected]
>
Cc: Eduardo Habkost <
[email protected]
>
Cc: Mark McLoughlin <
[email protected]
>
Signed-off-by: Ingo Molnar <
[email protected]
>
arch/x86/kernel/process_64.c
patch
|
blob
|
history
diff --git
a/arch/x86/kernel/process_64.c
b/arch/x86/kernel/process_64.c
index ddc6fcc73dc66a95da0a6f8f43beb29f529e8c23..488eaca47bd8c7a2842be634edbdfc423c13b9aa 100644
(file)
--- a/
arch/x86/kernel/process_64.c
+++ b/
arch/x86/kernel/process_64.c
@@
-562,6
+562,15
@@
__switch_to(struct task_struct *prev_p, struct task_struct *next_p)
load_TLS(next, cpu);
+ /*
+ * Leave lazy mode, flushing any hypercalls made here.
+ * This must be done before restoring TLS segments so
+ * the GDT and LDT are properly updated, and must be
+ * done before math_state_restore, so the TS bit is up
+ * to date.
+ */
+ arch_leave_lazy_cpu_mode();
+
/*
* Switch FS and GS.
*/