On Fri,  3 Jul 2020 12:06:49 +0200
Cornelia Huck <coh...@redhat.com> wrote:

> From: Halil Pasic <pa...@linux.ibm.com>
> 
> The atomic_cmpxchg() loop is broken because we occasionally end up with
> old and _old having different values (a legit compiler can generate code
> that accessed *ind_addr again to pick up a value for _old instead of
> using the value of old that was already fetched according to the
> rules of the abstract machine). This means the underlying CS instruction
> may use a different old (_old) than the one we intended to use if
> atomic_cmpxchg() performed the xchg part.
> 

[..]

I believe this fix should be considered for stable. Unfortunately we
didn't think about it back then.

Regards,
Halil

Reply via email to