On 1/26/2021 2:24 AM, Borislav Petkov wrote:
On Mon, Jan 25, 2021 at 02:18:37PM -0800, Yu, Yu-cheng wrote:
For example, when a thread reads a W=1, D=0 PTE and before changing it to
W=0,D=0, another thread could have written to the page and the PTE is W=1,
D=1 now. When try_cmpxchg() detects the difference, old_pte is read again.
None of that is mentioned in the comment above it and if anything,
*that* is what should be explained there - not some guarantee about some
processors which doesn't even apply here.
Also, add the fact that try_cmpxchg() will update old_pte with any
modified bits - D=1 for example - when it fails. As Peter just explained
to me on IRC.
Thx.
Yes, I will fix it. Thanks!