forked from luck/tmp_suning_uos_patched
s390/hugepages: clear page table for sw large page emulation
The software large page emulation on s390 did not clear the the pre-allocated page table in arch_release_hugepage() before freeing it. This could trigger the WARN_ON(!pte_none(*pte) in mm/vmalloc.c:106 and make vmap_pte_range() fail, because the page table could be reused in page_table_alloc(). This is fixed now by calling clear_table() before page_table_free(). Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
5e8010cb50
commit
a686425b31
|
@ -58,6 +58,8 @@ void arch_release_hugepage(struct page *page)
|
||||||
ptep = (pte_t *) page[1].index;
|
ptep = (pte_t *) page[1].index;
|
||||||
if (!ptep)
|
if (!ptep)
|
||||||
return;
|
return;
|
||||||
|
clear_table((unsigned long *) ptep, _PAGE_TYPE_EMPTY,
|
||||||
|
PTRS_PER_PTE * sizeof(pte_t));
|
||||||
page_table_free(&init_mm, (unsigned long *) ptep);
|
page_table_free(&init_mm, (unsigned long *) ptep);
|
||||||
page[1].index = 0;
|
page[1].index = 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user