Prev: irq: Start the transition of irq_chip methods taking a desc
Next: panic: Allow taint flag for warnings to be changed from TAINT_WARN
From: Oleg Nesterov on 21 Mar 2010 15:00 Move taskstats_tgid_free() from __exit_signal() to free_signal_struct(). This way signal->stats never points to nowhere and we can read ->stats lockless. Signed-off-by: Oleg Nesterov <oleg(a)redhat.com> --- kernel/exit.c | 1 - kernel/fork.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) --- 34-rc1/kernel/exit.c~13_SIGNAL_STATS 2010-03-21 18:34:02.000000000 +0100 +++ 34-rc1/kernel/exit.c 2010-03-21 18:36:44.000000000 +0100 @@ -145,7 +145,6 @@ static void __exit_signal(struct task_st clear_tsk_thread_flag(tsk,TIF_SIGPENDING); if (group_dead) { flush_sigqueue(&sig->shared_pending); - taskstats_tgid_free(sig); tty_kref_put(tty); } } --- 34-rc1/kernel/fork.c~13_SIGNAL_STATS 2010-03-21 18:35:01.000000000 +0100 +++ 34-rc1/kernel/fork.c 2010-03-21 18:37:31.000000000 +0100 @@ -160,6 +160,7 @@ EXPORT_SYMBOL(free_task); static inline void free_signal_struct(struct signal_struct *sig) { + taskstats_tgid_free(sig); kmem_cache_free(signal_cachep, sig); } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |