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: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Родитель
3a82603be4
Коммит
a8f6e7f795
|
@ -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)
|
||||||
" 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
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче