[openib-general] Re: [PATCH] cm refcount race fix
    Roland Dreier 
    rdreier at cisco.com
       
    Mon May  8 09:39:55 PDT 2006
    
    
  
    Michael> cm_deref_id does nothing outside the lock.
But you could still have:
/* Make sure cm_deref_id is not in progress */
spin_lock_irq(&cm_id_priv->lock);
spin_unlock_irq(&cm_id_priv->lock);
				spin_lock_irqsave(&cm_id_priv->lock, flags);
				if (atomic_dec_and_test(&cm_id_priv->refcount))
wait_event(cm_id_priv->wait, !atomic_read(&cm_id_priv->refcount));
while ((work = cm_dequeue_work(cm_id_priv)) != NULL)
	cm_free_work(work);
kfree(cm_id_priv->compare_data);
			 		wake_up(&cm_id_priv->wait);
				spin_unlock_irqrestore(&cm_id_priv->lock, flags);
 - R.
    
    
More information about the general
mailing list