> + /* Make sure cm_deref_id is not in progress */ > + spin_lock_irq(&cm_id_priv->lock); > + spin_unlock_irq(&cm_id_priv->lock); How does this help anything? cm_deref_id() can still be in progress, it just can't hold the lock during this empty section of code. - R.