Commit c4f0e5cf authored by Heiko Carstens's avatar Heiko Carstens

s390/mm,pageattr: fix walk_pte_level() early exit

In case of splitting to 4k mapping the early exit in walk_pte_level()
must only be taken iff flags is equal to SET_MEMORY_4K.
Currently the early exit is taken if the flag is set, and also others
might be set. This may lead to the situation that a mapping is split
but other changes are not done, like e.g. setting pages to R/W.

There is currently no such caller, but there might be in the future.

Fixes: b3e1a00c ("s390/mm: implement set_memory_4k()")
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent 8b5f08b4
......@@ -86,7 +86,7 @@ static int walk_pte_level(pmd_t *pmdp, unsigned long addr, unsigned long end,
{
pte_t *ptep, new;
if ((flags & SET_MEMORY_4K) == SET_MEMORY_4K)
if (flags == SET_MEMORY_4K)
return 0;
ptep = pte_offset_kernel(pmdp, addr);
do {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment