aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel
diff options
context:
space:
mode:
authorGerald Schaefer <gerald.schaefer@de.ibm.com>2020-05-06 13:04:07 +0200
committerVasily Gorbik <gor@linux.ibm.com>2020-05-20 10:13:27 +0200
commitac8372f3b4e41015549b331a4f350224661e7fc6 (patch)
tree80c620f663dddc5c60964399729f0bbed817546e /arch/s390/kernel
parents390/kexec_file: fix initrd location for kdump kernel (diff)
downloadlinux-dev-ac8372f3b4e41015549b331a4f350224661e7fc6.tar.xz
linux-dev-ac8372f3b4e41015549b331a4f350224661e7fc6.zip
s390/mm: fix set_huge_pte_at() for empty ptes
On s390, the layout of normal and large ptes (i.e. pmds/puds) differs. Therefore, set_huge_pte_at() does a conversion from a normal pte to the corresponding large pmd/pud. So, when converting an empty pte, this should result in an empty pmd/pud, which would return true for pmd/pud_none(). However, after conversion we also mark the pmd/pud as large, and therefore present. For empty ptes, this will result in an empty pmd/pud that is also marked as large, and pmd/pud_none() would not return true. There is currently no issue with this behaviour, as set_huge_pte_at() does not seem to be called for empty ptes. It would be valid though, so let's fix this by not marking empty ptes as large in set_huge_pte_at(). This was found by testing a patch from from Anshuman Khandual, which is currently discussed on LKML ("mm/debug: Add more arch page table helper tests"). Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to 'arch/s390/kernel')
0 files changed, 0 insertions, 0 deletions