提交 7ae1277a 编写于 作者: L Linus Torvalds

Merge branch 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6

* 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
  PM / x86: Save/restore MISC_ENABLE register
...@@ -15,6 +15,8 @@ static inline int arch_prepare_suspend(void) { return 0; } ...@@ -15,6 +15,8 @@ static inline int arch_prepare_suspend(void) { return 0; }
struct saved_context { struct saved_context {
u16 es, fs, gs, ss; u16 es, fs, gs, ss;
unsigned long cr0, cr2, cr3, cr4; unsigned long cr0, cr2, cr3, cr4;
u64 misc_enable;
bool misc_enable_saved;
struct desc_ptr gdt; struct desc_ptr gdt;
struct desc_ptr idt; struct desc_ptr idt;
u16 ldt; u16 ldt;
......
...@@ -27,6 +27,8 @@ struct saved_context { ...@@ -27,6 +27,8 @@ struct saved_context {
u16 ds, es, fs, gs, ss; u16 ds, es, fs, gs, ss;
unsigned long gs_base, gs_kernel_base, fs_base; unsigned long gs_base, gs_kernel_base, fs_base;
unsigned long cr0, cr2, cr3, cr4, cr8; unsigned long cr0, cr2, cr3, cr4, cr8;
u64 misc_enable;
bool misc_enable_saved;
unsigned long efer; unsigned long efer;
u16 gdt_pad; u16 gdt_pad;
u16 gdt_limit; u16 gdt_limit;
......
...@@ -105,6 +105,8 @@ static void __save_processor_state(struct saved_context *ctxt) ...@@ -105,6 +105,8 @@ static void __save_processor_state(struct saved_context *ctxt)
ctxt->cr4 = read_cr4(); ctxt->cr4 = read_cr4();
ctxt->cr8 = read_cr8(); ctxt->cr8 = read_cr8();
#endif #endif
ctxt->misc_enable_saved = !rdmsrl_safe(MSR_IA32_MISC_ENABLE,
&ctxt->misc_enable);
} }
/* Needed by apm.c */ /* Needed by apm.c */
...@@ -152,6 +154,8 @@ static void fix_processor_context(void) ...@@ -152,6 +154,8 @@ static void fix_processor_context(void)
*/ */
static void __restore_processor_state(struct saved_context *ctxt) static void __restore_processor_state(struct saved_context *ctxt)
{ {
if (ctxt->misc_enable_saved)
wrmsrl(MSR_IA32_MISC_ENABLE, ctxt->misc_enable);
/* /*
* control registers * control registers
*/ */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册