mirror of
https://github.com/fail0verflow/switch-linux.git
synced 2025-05-04 02:34:21 -04:00
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Thomas Gleixner: "A small set of changes: - a fixup for kexec related to 5-level paging mode. That covers most of the cases except kexec from a 5-level kernel to a 4-level kernel. The latter needs more work and is going to come in 4.17 - two trivial fixes for build warnings triggered by LTO and gcc-8" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/power: Fix swsusp_arch_resume prototype x86/dumpstack: Avoid uninitlized variable x86/kexec: Make kexec (mostly) work in 5-level paging mode
This commit is contained in:
commit
0a646e9c99
6 changed files with 13 additions and 6 deletions
|
@ -109,7 +109,7 @@ void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,
|
||||||
struct stack_info stack_info = {0};
|
struct stack_info stack_info = {0};
|
||||||
unsigned long visit_mask = 0;
|
unsigned long visit_mask = 0;
|
||||||
int graph_idx = 0;
|
int graph_idx = 0;
|
||||||
bool partial;
|
bool partial = false;
|
||||||
|
|
||||||
printk("%sCall Trace:\n", log_lvl);
|
printk("%sCall Trace:\n", log_lvl);
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,9 @@ relocate_kernel:
|
||||||
movq %cr4, %rax
|
movq %cr4, %rax
|
||||||
movq %rax, CR4(%r11)
|
movq %rax, CR4(%r11)
|
||||||
|
|
||||||
|
/* Save CR4. Required to enable the right paging mode later. */
|
||||||
|
movq %rax, %r13
|
||||||
|
|
||||||
/* zero out flags, and disable interrupts */
|
/* zero out flags, and disable interrupts */
|
||||||
pushq $0
|
pushq $0
|
||||||
popfq
|
popfq
|
||||||
|
@ -126,8 +129,13 @@ identity_mapped:
|
||||||
/*
|
/*
|
||||||
* Set cr4 to a known state:
|
* Set cr4 to a known state:
|
||||||
* - physical address extension enabled
|
* - physical address extension enabled
|
||||||
|
* - 5-level paging, if it was enabled before
|
||||||
*/
|
*/
|
||||||
movl $X86_CR4_PAE, %eax
|
movl $X86_CR4_PAE, %eax
|
||||||
|
testq $X86_CR4_LA57, %r13
|
||||||
|
jz 1f
|
||||||
|
orl $X86_CR4_LA57, %eax
|
||||||
|
1:
|
||||||
movq %rax, %cr4
|
movq %rax, %cr4
|
||||||
|
|
||||||
jmp 1f
|
jmp 1f
|
||||||
|
|
|
@ -145,7 +145,7 @@ static inline void resume_init_first_level_page_table(pgd_t *pg_dir)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
int swsusp_arch_resume(void)
|
asmlinkage int swsusp_arch_resume(void)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
|
|
|
@ -174,7 +174,7 @@ out:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int swsusp_arch_resume(void)
|
asmlinkage int swsusp_arch_resume(void)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
|
|
|
@ -384,6 +384,8 @@ extern int swsusp_page_is_forbidden(struct page *);
|
||||||
extern void swsusp_set_page_free(struct page *);
|
extern void swsusp_set_page_free(struct page *);
|
||||||
extern void swsusp_unset_page_free(struct page *);
|
extern void swsusp_unset_page_free(struct page *);
|
||||||
extern unsigned long get_safe_page(gfp_t gfp_mask);
|
extern unsigned long get_safe_page(gfp_t gfp_mask);
|
||||||
|
extern asmlinkage int swsusp_arch_suspend(void);
|
||||||
|
extern asmlinkage int swsusp_arch_resume(void);
|
||||||
|
|
||||||
extern void hibernation_set_ops(const struct platform_hibernation_ops *ops);
|
extern void hibernation_set_ops(const struct platform_hibernation_ops *ops);
|
||||||
extern int hibernate(void);
|
extern int hibernate(void);
|
||||||
|
|
|
@ -104,9 +104,6 @@ extern int in_suspend;
|
||||||
extern dev_t swsusp_resume_device;
|
extern dev_t swsusp_resume_device;
|
||||||
extern sector_t swsusp_resume_block;
|
extern sector_t swsusp_resume_block;
|
||||||
|
|
||||||
extern asmlinkage int swsusp_arch_suspend(void);
|
|
||||||
extern asmlinkage int swsusp_arch_resume(void);
|
|
||||||
|
|
||||||
extern int create_basic_memory_bitmaps(void);
|
extern int create_basic_memory_bitmaps(void);
|
||||||
extern void free_basic_memory_bitmaps(void);
|
extern void free_basic_memory_bitmaps(void);
|
||||||
extern int hibernate_preallocate_memory(void);
|
extern int hibernate_preallocate_memory(void);
|
||||||
|
|
Loading…
Add table
Reference in a new issue