|
@@ -489,7 +489,8 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
|
|
|
|
|
|
mutex_set_owner(lock);
|
|
mutex_set_owner(lock);
|
|
mspin_unlock(MLOCK(lock), &node);
|
|
mspin_unlock(MLOCK(lock), &node);
|
|
- goto done;
|
|
|
|
|
|
+ preempt_enable();
|
|
|
|
+ return 0;
|
|
}
|
|
}
|
|
mspin_unlock(MLOCK(lock), &node);
|
|
mspin_unlock(MLOCK(lock), &node);
|
|
|
|
|
|
@@ -596,7 +597,6 @@ skip_wait:
|
|
}
|
|
}
|
|
|
|
|
|
spin_unlock_mutex(&lock->wait_lock, flags);
|
|
spin_unlock_mutex(&lock->wait_lock, flags);
|
|
-done:
|
|
|
|
preempt_enable();
|
|
preempt_enable();
|
|
return 0;
|
|
return 0;
|
|
|
|
|