]> git.baikalelectronics.ru Git - kernel.git/commit
s390/mm: fix pmd_huge() usage for kernel mapping
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Mon, 1 Oct 2012 10:58:34 +0000 (12:58 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 9 Oct 2012 12:16:56 +0000 (14:16 +0200)
commit13edb20d35413b16c88be12adcbc60ba353e24c0
tree6d25959ac7401eee48f76441ca42c2759aef15b4
parent43ee9ab360029026f6ffcb15f6e5028daab36990
s390/mm: fix pmd_huge() usage for kernel mapping

pmd_huge() will always return 0 on !HUGETLBFS, however we use that helper
function when walking the kernel page tables to decide if we have a
1MB page frame or not.
Since we create 1MB frames for the kernel 1:1 mapping independently of
HUGETLBFS this can lead to incorrect storage accesses since the code
can assume that we have a pointer to a page table instead of a pointer
to a 1MB frame.

Fix this by adding a pmd_large() primitive like other architectures have
it already and remove all references to HUGETLBFS/HUGETLBPAGE from the
code that walks kernel page tables.

Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/pgtable.h
arch/s390/mm/pageattr.c
arch/s390/mm/vmem.c