The patch titled rtmutex-clean-up-and-remove-some-extra-spinlocks-more has been removed from the -mm tree. Its filename is rtmutex-clean-up-and-remove-some-extra-spinlocks-more.patch This patch was dropped because it was folded into rtmutex-clean-up-and-remove-some-extra-spinlocks.patch ------------------------------------------------------ Subject: rtmutex-clean-up-and-remove-some-extra-spinlocks-more From: Oleg Nesterov <oleg@xxxxxxxxxx> On top of Steven's rtmutex-clean-up-and-remove-some-extra-spinlocks.patch There are still 2 get_task_struct()s under ->pi_lock. Imho, this is confusing. Move them outside of ->pi_lock protected section. The task can't go away, otherwise it was unsafe to take task->pi_lock. Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Esben Nielsen <nielsen.esben@xxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- kernel/rtmutex.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff -puN kernel/rtmutex.c~rtmutex-clean-up-and-remove-some-extra-spinlocks-more kernel/rtmutex.c --- a/kernel/rtmutex.c~rtmutex-clean-up-and-remove-some-extra-spinlocks-more +++ a/kernel/rtmutex.c @@ -251,6 +251,7 @@ static int rt_mutex_adjust_prio_chain(st /* Grab the next task */ task = rt_mutex_owner(lock); + get_task_struct(task); spin_lock_irqsave(&task->pi_lock, flags); if (waiter == rt_mutex_top_waiter(lock)) { @@ -269,7 +270,6 @@ static int rt_mutex_adjust_prio_chain(st __rt_mutex_adjust_prio(task); } - get_task_struct(task); spin_unlock_irqrestore(&task->pi_lock, flags); top_waiter = rt_mutex_top_waiter(lock); @@ -591,10 +591,10 @@ void rt_mutex_adjust_pi(struct task_stru return; } - /* gets dropped in rt_mutex_adjust_prio_chain()! */ - get_task_struct(task); spin_unlock_irqrestore(&task->pi_lock, flags); + /* gets dropped in rt_mutex_adjust_prio_chain()! */ + get_task_struct(task); rt_mutex_adjust_prio_chain(task, 0, NULL, NULL, task); } _ Patches currently in -mm which might be from oleg@xxxxxxxxxx are origin.patch rtmutex-clean-up-and-remove-some-extra-spinlocks.patch rtmutex-clean-up-and-remove-some-extra-spinlocks-more.patch elf_core_dump-dont-take-tasklist_lock.patch elf_fdpic_core_dump-dont-take-tasklist_lock.patch has_stopped_jobs-cleanup.patch __dequeue_signal-cleanup.patch do_sched_setscheduler-dont-take-tasklist_lock.patch introduce-is_rt_policy-helper.patch sched_setscheduler-fix-policy-checks.patch reparent_to_init-use-has_rt_policy.patch copy_process-cosmetic-ioprio-tweak.patch futex_find_get_task-dont-take-tasklist_lock.patch sys_get_robust_list-dont-take-tasklist_lock.patch set-exit_dead-state-in-do_exit-not-in-schedule.patch kill-pf_dead-flag.patch introduce-task_dead-state.patch select_bad_process-kill-a-bogus-pf_dead-task_dead-check.patch select_bad_process-cleanup-releasing-check.patch oom_kill_task-cleanup-mm-checks.patch audit-accounting-tty-locking.patch proc-readdir-race-fix-take-3-race-fix.patch vt-rework-the-console-spawning-variables.patch vt-make-vt_pid-a-struct-pid-making-it-pid-wrap-around-safe.patch simplify-pid-iterators.patch file-add-locking-to-f_getown.patch proc-convert-task_sig-to-use-lock_task_sighand.patch proc-convert-do_task_stat-to-use-lock_task_sighand.patch proc-drop-tasklist-lock-in-task_state.patch proc-properly-compute-tgid_offset.patch proc-remove-trailing-blank-entry-from-pid_entry-arrays.patch proc-remove-the-useless-smp-safe-comments-from-proc.patch proc-comment-what-proc_fill_cache-does.patch introduce-get_task_pid-to-fix-unsafe-get_pid.patch rcu-simplify-improve-batch-tuning.patch pidhash-temporary-debug-checks.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html