s390/mm: always use PAGE_KERNEL when mapping pages
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Thu, 19 May 2016 14:25:30 +0000 (16:25 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 13 Jun 2016 13:58:14 +0000 (15:58 +0200)
Always use PAGE_KERNEL when re-enabling pages within the kernel
mapping due to debug pagealloc. Without using this pgprot value
pte_mkwrite() and pte_wrprotect() won't work on such mappings after an
unmap -> map cycle anymore.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/mm/pageattr.c

index f2a5c29a97e9f455fba6cc81bad7399a80354594..e67a8f712e192691a40b2ffcf6c7b36dd1cd6a89 100644 (file)
@@ -138,7 +138,7 @@ void __kernel_map_pages(struct page *page, int numpages, int enable)
                nr = min(numpages - i, nr);
                if (enable) {
                        for (j = 0; j < nr; j++) {
-                               pte_val(*pte) = __pa(address);
+                               pte_val(*pte) = address | pgprot_val(PAGE_KERNEL);
                                address += PAGE_SIZE;
                                pte++;
                        }