On 12/15/2011 02:53 PM, Liu ping fan wrote: > >>> +struct kvm_vcpu *kvm_vcpu_get(struct kvm_vcpu *vcpu) >>> +{ >>> + if (vcpu == NULL) >>> + return NULL; >>> + if (atomic_add_unless(&vcpu->refcount, 1, 0)) >> >> >> Why do not use atomic_inc()? >> Also, i think a memory barrier is needed after increasing refcount. >> > Because when refcout==0, we prepare to destroy vcpu, and do not to > disturb it by increasing the refcount. Oh, get it. > And sorry but I can not figure out the scene why memory barrier needed > here. Seems no risks on SMP. > If atomic_add_unless is necessary, memory barrier is not needed here. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html