mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
x86/kexec: Mark relocate_kernel page as ROX instead of RWX
All writes to the page now happen before it gets marked as executable (or after it's already switched to the identmap page tables where it's OK to be RWX). Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Baoquan He <bhe@redhat.com> Cc: Vivek Goyal <vgoyal@redhat.com> Cc: Dave Young <dyoung@redhat.com> Cc: Eric Biederman <ebiederm@xmission.com> Cc: Ard Biesheuvel <ardb@kernel.org> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lore.kernel.org/r/20241205153343.3275139-14-dwmw2@infradead.org
This commit is contained in:
parent
93e489ad7a
commit
5a82223e07
1 changed files with 2 additions and 1 deletions
|
@ -323,7 +323,7 @@ int machine_kexec_prepare(struct kimage *image)
|
|||
|
||||
__memcpy(control_page, __relocate_kernel_start, reloc_end - reloc_start);
|
||||
|
||||
set_memory_x((unsigned long)control_page, 1);
|
||||
set_memory_rox((unsigned long)control_page, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -333,6 +333,7 @@ void machine_kexec_cleanup(struct kimage *image)
|
|||
void *control_page = page_address(image->control_code_page);
|
||||
|
||||
set_memory_nx((unsigned long)control_page, 1);
|
||||
set_memory_rw((unsigned long)control_page, 1);
|
||||
|
||||
free_transition_pgtable(image);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue