Re: [PATCH v9 05/12] x86, mpx: on-demand kernel allocation of bounds tables

Thomas Gleixner
2014-10-24T12:08:11Z

On Sun, 12 Oct 2014, Qiaowei Ren wrote:
> + /*
> + * Go poke the address of the new bounds table in to the
> + * bounds directory entry out in userspace memory. Note:
> + * we may race with another CPU instantiating the same table.
> + * In that case the cmpxchg will see an unexpected
> + * 'actual_old_val'.
> + */
> + ret = user_atomic_cmpxchg_inatomic(&actual_old_val, bd_entry,
> + expected_old_val, bt_addr);

This is fully preemptible non-atomic context, right?

So this wants a proper comment, why using
user_atomic_cmpxchg_inatomic() is the right thing to do here.

Thanks,

tglx