Commit a8f6e7f7 authored by Christian Borntraeger's avatar Christian Borntraeger Committed by Martin Schwidefsky

s390/pgtable: make pgste lock an explicit barrier

Getting and Releasing the pgste lock has lock semantics. Make the
code an explicit barrier.
Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 3a82603b
...@@ -623,7 +623,7 @@ static inline pgste_t pgste_get_lock(pte_t *ptep) ...@@ -623,7 +623,7 @@ static inline pgste_t pgste_get_lock(pte_t *ptep)
" csg %0,%1,%2\n" " csg %0,%1,%2\n"
" jl 0b\n" " jl 0b\n"
: "=&d" (old), "=&d" (new), "=Q" (ptep[PTRS_PER_PTE]) : "=&d" (old), "=&d" (new), "=Q" (ptep[PTRS_PER_PTE])
: "Q" (ptep[PTRS_PER_PTE]) : "cc"); : "Q" (ptep[PTRS_PER_PTE]) : "cc", "memory");
#endif #endif
return __pgste(new); return __pgste(new);
} }
...@@ -635,7 +635,8 @@ static inline void pgste_set_unlock(pte_t *ptep, pgste_t pgste) ...@@ -635,7 +635,8 @@ static inline void pgste_set_unlock(pte_t *ptep, pgste_t pgste)
" nihh %1,0xff7f\n" /* clear RCP_PCL_BIT */ " nihh %1,0xff7f\n" /* clear RCP_PCL_BIT */
" stg %1,%0\n" " stg %1,%0\n"
: "=Q" (ptep[PTRS_PER_PTE]) : "=Q" (ptep[PTRS_PER_PTE])
: "d" (pgste_val(pgste)), "Q" (ptep[PTRS_PER_PTE]) : "cc"); : "d" (pgste_val(pgste)), "Q" (ptep[PTRS_PER_PTE])
: "cc", "memory");
preempt_enable(); preempt_enable();
#endif #endif
} }
......
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