Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3c1df68b authored by Arjan van de Ven's avatar Arjan van de Ven Committed by Ingo Molnar
Browse files

x86: make sure initmem is writable



When we free initmem, various rodata and CPA checks may have left
memory read only.. this patch ensures that the memory is writable
before we free it.

Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 488fd995
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -780,6 +780,13 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
{
	unsigned long addr;

	/*
	 * We just marked the kernel text read only above, now that
	 * we are going to free part of that, we need to make that
	 * writeable first.
	 */
	set_memory_rw(begin, (end - begin) >> PAGE_SHIFT);

	for (addr = begin; addr < end; addr += PAGE_SIZE) {
		ClearPageReserved(virt_to_page(addr));
		init_page_count(virt_to_page(addr));
+1 −0
Original line number Diff line number Diff line
@@ -570,6 +570,7 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
	 * 2Mb kernel mapping just for this debug feature.
	 */
	if (begin >= __START_KERNEL_map) {
		set_memory_rw(begin, (end - begin)/PAGE_SIZE);
		set_memory_np(begin, (end - begin)/PAGE_SIZE);
		set_memory_nx(begin, (end - begin)/PAGE_SIZE);
	}