Messages in this thread | | | Date | Thu, 30 Mar 2006 18:55:52 +1000 | From | Nick Piggin <> | Subject | Re: Fix unlock_buffer() to work the same way as bit_unlock() |
| |
Zoltan Menyhart wrote:
> However, I do not think your implementation would be efficient due to > selecting the ordering mode at run time: > >> + switch (mode) { >> + case MODE_NONE : >> + case MODE_ACQUIRE : >> + return cmpxchg_acq(m, old, new); >> + case MODE_FENCE : >> + smp_mb(); >> + /* Fall through */ >> + case MODE_RELEASE : >> + return cmpxchg_rel(m, old, new); >
BTW. Isn't MODE_FENCE wrong? Seems like a read or write could be moved above cmpxchg_rel?
I think you need rel+acq rather than acq+rel (if I'm right, then the same goes for your earlier bitops patches, btw).
-- SUSE Labs, Novell Inc. Send instant messages to your online friends http://au.messenger.yahoo.com
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |