diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-11 20:45:32 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-11 20:45:32 -0500 |
commit | ae8a52185e5c070cf4510b323dbc1b9e46b897d6 (patch) | |
tree | 854c45d80e594383283f6f709c5001a84450355f /arch/x86/include | |
parent | 0ffedcda63f56eaca99a77392b9f057dfb738817 (diff) | |
parent | d6b56b0bc68ba7927b286da86eda1d4d4dbe63f6 (diff) |
Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 platform updates from Ingo Molnar:
"Two changes:
- one to quirk-save/restore certain system MSRs across
suspend/resume, to make certain Intel systems work better
(Chen Yu)
- and also to constify a read only structure (Julia Lawall)"
* 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/platform/calgary: Constify cal_chipset_ops structures
x86/pm: Introduce quirk framework to save/restore extra MSR registers around suspend/resume
Diffstat (limited to 'arch/x86/include')
-rw-r--r-- | arch/x86/include/asm/calgary.h | 2 | ||||
-rw-r--r-- | arch/x86/include/asm/msr.h | 10 | ||||
-rw-r--r-- | arch/x86/include/asm/suspend_32.h | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/suspend_64.h | 1 |
4 files changed, 13 insertions, 1 deletions
diff --git a/arch/x86/include/asm/calgary.h b/arch/x86/include/asm/calgary.h index 0d467b338835..a8303ebe089f 100644 --- a/arch/x86/include/asm/calgary.h +++ b/arch/x86/include/asm/calgary.h | |||
@@ -31,7 +31,7 @@ | |||
31 | #include <asm/types.h> | 31 | #include <asm/types.h> |
32 | 32 | ||
33 | struct iommu_table { | 33 | struct iommu_table { |
34 | struct cal_chipset_ops *chip_ops; /* chipset specific funcs */ | 34 | const struct cal_chipset_ops *chip_ops; /* chipset specific funcs */ |
35 | unsigned long it_base; /* mapped address of tce table */ | 35 | unsigned long it_base; /* mapped address of tce table */ |
36 | unsigned long it_hint; /* Hint for next alloc */ | 36 | unsigned long it_hint; /* Hint for next alloc */ |
37 | unsigned long *it_map; /* A simple allocation bitmap for now */ | 37 | unsigned long *it_map; /* A simple allocation bitmap for now */ |
diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h index 1e87bff093d1..93fb7c1cffda 100644 --- a/arch/x86/include/asm/msr.h +++ b/arch/x86/include/asm/msr.h | |||
@@ -32,6 +32,16 @@ struct msr_regs_info { | |||
32 | int err; | 32 | int err; |
33 | }; | 33 | }; |
34 | 34 | ||
35 | struct saved_msr { | ||
36 | bool valid; | ||
37 | struct msr_info info; | ||
38 | }; | ||
39 | |||
40 | struct saved_msrs { | ||
41 | unsigned int num; | ||
42 | struct saved_msr *array; | ||
43 | }; | ||
44 | |||
35 | static inline unsigned long long native_read_tscp(unsigned int *aux) | 45 | static inline unsigned long long native_read_tscp(unsigned int *aux) |
36 | { | 46 | { |
37 | unsigned long low, high; | 47 | unsigned long low, high; |
diff --git a/arch/x86/include/asm/suspend_32.h b/arch/x86/include/asm/suspend_32.h index d1793f06854d..8e9dbe7b73a1 100644 --- a/arch/x86/include/asm/suspend_32.h +++ b/arch/x86/include/asm/suspend_32.h | |||
@@ -15,6 +15,7 @@ struct saved_context { | |||
15 | unsigned long cr0, cr2, cr3, cr4; | 15 | unsigned long cr0, cr2, cr3, cr4; |
16 | u64 misc_enable; | 16 | u64 misc_enable; |
17 | bool misc_enable_saved; | 17 | bool misc_enable_saved; |
18 | struct saved_msrs saved_msrs; | ||
18 | struct desc_ptr gdt_desc; | 19 | struct desc_ptr gdt_desc; |
19 | struct desc_ptr idt; | 20 | struct desc_ptr idt; |
20 | u16 ldt; | 21 | u16 ldt; |
diff --git a/arch/x86/include/asm/suspend_64.h b/arch/x86/include/asm/suspend_64.h index 7ebf0ebe4e68..6136a18152af 100644 --- a/arch/x86/include/asm/suspend_64.h +++ b/arch/x86/include/asm/suspend_64.h | |||
@@ -24,6 +24,7 @@ struct saved_context { | |||
24 | unsigned long cr0, cr2, cr3, cr4, cr8; | 24 | unsigned long cr0, cr2, cr3, cr4, cr8; |
25 | u64 misc_enable; | 25 | u64 misc_enable; |
26 | bool misc_enable_saved; | 26 | bool misc_enable_saved; |
27 | struct saved_msrs saved_msrs; | ||
27 | unsigned long efer; | 28 | unsigned long efer; |
28 | u16 gdt_pad; /* Unused */ | 29 | u16 gdt_pad; /* Unused */ |
29 | struct desc_ptr gdt_desc; | 30 | struct desc_ptr gdt_desc; |