I also don't agree with this approach to fix the bug. I'd much rather we properly synchronize. One idea is to have a pendulum which sways every time a remove batch flush is performed. The pendulum is a pointer, which points to one of two per-cpu batch datastructures. A remote flush is issued by setting an atomic counter to the number of remote cpus doing the flush in the per-cpu batch area, each remote cpu decrements the atomic counter. The submitter also "sways the pendulum" by adjusting the pointer to other per-cpu batch datastructure. If a submitter sees that there is a reference count on the per-cpu batch the pendulum points to, it waits until the counter hits zero. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html