|
@@ -1153,6 +1153,14 @@ void rt_mutex_adjust_pi(struct task_struct *task)
|
|
|
next_lock, NULL, task);
|
|
|
}
|
|
|
|
|
|
+void rt_mutex_init_waiter(struct rt_mutex_waiter *waiter)
|
|
|
+{
|
|
|
+ debug_rt_mutex_init_waiter(waiter);
|
|
|
+ RB_CLEAR_NODE(&waiter->pi_tree_entry);
|
|
|
+ RB_CLEAR_NODE(&waiter->tree_entry);
|
|
|
+ waiter->task = NULL;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* __rt_mutex_slowlock() - Perform the wait-wake-try-to-take loop
|
|
|
* @lock: the rt_mutex to take
|
|
@@ -1235,9 +1243,7 @@ rt_mutex_slowlock(struct rt_mutex *lock, int state,
|
|
|
unsigned long flags;
|
|
|
int ret = 0;
|
|
|
|
|
|
- debug_rt_mutex_init_waiter(&waiter);
|
|
|
- RB_CLEAR_NODE(&waiter.pi_tree_entry);
|
|
|
- RB_CLEAR_NODE(&waiter.tree_entry);
|
|
|
+ rt_mutex_init_waiter(&waiter);
|
|
|
|
|
|
/*
|
|
|
* Technically we could use raw_spin_[un]lock_irq() here, but this can
|