|
@@ -229,7 +229,11 @@ void iwl_mvm_unref(struct iwl_mvm *mvm, enum iwl_mvm_ref_type ref_type)
|
|
|
|
|
|
IWL_DEBUG_RPM(mvm, "Leave mvm reference - type %d\n", ref_type);
|
|
IWL_DEBUG_RPM(mvm, "Leave mvm reference - type %d\n", ref_type);
|
|
spin_lock_bh(&mvm->refs_lock);
|
|
spin_lock_bh(&mvm->refs_lock);
|
|
- WARN_ON(!mvm->refs[ref_type]--);
|
|
|
|
|
|
+ if (WARN_ON(!mvm->refs[ref_type])) {
|
|
|
|
+ spin_unlock_bh(&mvm->refs_lock);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ mvm->refs[ref_type]--;
|
|
spin_unlock_bh(&mvm->refs_lock);
|
|
spin_unlock_bh(&mvm->refs_lock);
|
|
iwl_trans_unref(mvm->trans);
|
|
iwl_trans_unref(mvm->trans);
|
|
}
|
|
}
|