local_cmpxchg
r = local_cmpxchg(l, o, n);
if (local_cmpxchg(&drvdata->reading, 0, 1))
return local_cmpxchg(&l->a, old, new);
(void)local_cmpxchg(&next_page->write, old_write, val);
(void)local_cmpxchg(&next_page->entries, old_entries, eval);