s390/mm: fix addressing exception after suspend/resume
Commitc9b5ad546e
"s390/mm: tag normal pages vs pages used in page tables" accidentally changed the logic in arch_set_page_states(), which is used by the suspend/resume code. set_page_stable(page, order) was changed to set_page_stable_dat(page, 0). After this, only the first page of higher order pages will be set to stable, and a write to one of the unstable pages will result in an addressing exception. Fix this by using "order" again, instead of "0". Fixes:c9b5ad546e
("s390/mm: tag normal pages vs pages used in page tables") Cc: stable@vger.kernel.org # 4.14+ Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com> 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
4c14d1ce17
commit
37a366face
|
@ -271,7 +271,7 @@ void arch_set_page_states(int make_stable)
|
|||
list_for_each(l, &zone->free_area[order].free_list[t]) {
|
||||
page = list_entry(l, struct page, lru);
|
||||
if (make_stable)
|
||||
set_page_stable_dat(page, 0);
|
||||
set_page_stable_dat(page, order);
|
||||
else
|
||||
set_page_unused(page, order);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue