Commit 801eb73f authored by Dave Kleikamp's avatar Dave Kleikamp Committed by Benjamin Herrenschmidt

powerpc/mm: Don't clear _PAGE_COHERENT when _PAGE_SAO is set

The current low level hash code on LPAR configurations clears
_PAGE_COHERENT (M) when either _PAGE_GUARDED (G) or _PAGE_NO_CACHE (I)
is set. This conflicts with _PAGE_SAO which has M, I and W bits sets at
once (normally invalid combo) to indicate the new SAO attribute.

This changes the code to allow that case.
Signed-off-by: default avatarDave Kleikamp <shaggy@linux.vnet.ibm.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent ef3d3246
...@@ -305,7 +305,8 @@ static long pSeries_lpar_hpte_insert(unsigned long hpte_group, ...@@ -305,7 +305,8 @@ static long pSeries_lpar_hpte_insert(unsigned long hpte_group,
flags = 0; flags = 0;
/* Make pHyp happy */ /* Make pHyp happy */
if (rflags & (_PAGE_GUARDED|_PAGE_NO_CACHE)) if ((rflags & _PAGE_GUARDED) ||
((rflags & _PAGE_NO_CACHE) & !(rflags & _PAGE_WRITETHRU)))
hpte_r &= ~_PAGE_COHERENT; hpte_r &= ~_PAGE_COHERENT;
lpar_rc = plpar_pte_enter(flags, hpte_group, hpte_v, hpte_r, &slot); lpar_rc = plpar_pte_enter(flags, hpte_group, hpte_v, hpte_r, &slot);
......
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