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.