Commit 713e3e18 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'core-fixes-for-linus-2' of...

Merge branch 'core-fixes-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'core-fixes-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  lockdep: Fix typos in documentation
  lockdep: Fix file mode of lock_stat
  rtmutex: Avoid deadlock in rt_mutex_start_proxy_lock()
parents 7b2aa037 0e692a94
...@@ -30,9 +30,9 @@ State ...@@ -30,9 +30,9 @@ State
The validator tracks lock-class usage history into 4n + 1 separate state bits: The validator tracks lock-class usage history into 4n + 1 separate state bits:
- 'ever held in STATE context' - 'ever held in STATE context'
- 'ever head as readlock in STATE context' - 'ever held as readlock in STATE context'
- 'ever head with STATE enabled' - 'ever held with STATE enabled'
- 'ever head as readlock with STATE enabled' - 'ever held as readlock with STATE enabled'
Where STATE can be either one of (kernel/lockdep_states.h) Where STATE can be either one of (kernel/lockdep_states.h)
- hardirq - hardirq
......
...@@ -758,7 +758,8 @@ static int __init lockdep_proc_init(void) ...@@ -758,7 +758,8 @@ static int __init lockdep_proc_init(void)
&proc_lockdep_stats_operations); &proc_lockdep_stats_operations);
#ifdef CONFIG_LOCK_STAT #ifdef CONFIG_LOCK_STAT
proc_create("lock_stat", S_IRUSR, NULL, &proc_lock_stat_operations); proc_create("lock_stat", S_IRUSR | S_IWUSR, NULL,
&proc_lock_stat_operations);
#endif #endif
return 0; return 0;
......
...@@ -1039,16 +1039,14 @@ int rt_mutex_start_proxy_lock(struct rt_mutex *lock, ...@@ -1039,16 +1039,14 @@ int rt_mutex_start_proxy_lock(struct rt_mutex *lock,
if (!rt_mutex_owner(lock) || try_to_steal_lock(lock, task)) { if (!rt_mutex_owner(lock) || try_to_steal_lock(lock, task)) {
/* We got the lock for task. */ /* We got the lock for task. */
debug_rt_mutex_lock(lock); debug_rt_mutex_lock(lock);
rt_mutex_set_owner(lock, task, 0); rt_mutex_set_owner(lock, task, 0);
spin_unlock(&lock->wait_lock);
rt_mutex_deadlock_account_lock(lock, task); rt_mutex_deadlock_account_lock(lock, task);
return 1; return 1;
} }
ret = task_blocks_on_rt_mutex(lock, waiter, task, detect_deadlock); ret = task_blocks_on_rt_mutex(lock, waiter, task, detect_deadlock);
if (ret && !waiter->task) { if (ret && !waiter->task) {
/* /*
* Reset the return value. We might have * Reset the return value. We might have
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment