From: Linus Torvalds Date: Fri, 11 Sep 2009 20:20:18 +0000 (-0700) Subject: Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git... X-Git-Tag: v3.12-rc1~13402 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eee2775d9924b22643bd89b2e568cc5eed7e8a04;p=kernel%2Fkernel-generic.git Merge branch 'core-rcu-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (28 commits) rcu: Move end of special early-boot RCU operation earlier rcu: Changes from reviews: avoid casts, fix/add warnings, improve comments rcu: Create rcutree plugins to handle hotplug CPU for multi-level trees rcu: Remove lockdep annotations from RCU's _notrace() API members rcu: Add #ifdef to suppress __rcu_offline_cpu() warning in !HOTPLUG_CPU builds rcu: Add CPU-offline processing for single-node configurations rcu: Add "notrace" to RCU function headers used by ftrace rcu: Remove CONFIG_PREEMPT_RCU rcu: Merge preemptable-RCU functionality into hierarchical RCU rcu: Simplify rcu_pending()/rcu_check_callbacks() API rcu: Use debugfs_remove_recursive() simplify code. rcu: Merge per-RCU-flavor initialization into pre-existing macro rcu: Fix online/offline indication for rcudata.csv trace file rcu: Consolidate sparse and lockdep declarations in include/linux/rcupdate.h rcu: Renamings to increase RCU clarity rcu: Move private definitions from include/linux/rcutree.h to kernel/rcutree.h rcu: Expunge lingering references to CONFIG_CLASSIC_RCU, optimize on !SMP rcu: Delay rcu_barrier() wait until beginning of next CPU-hotunplug operation. rcu: Fix typo in rcu_irq_exit() comment header rcu: Make rcupreempt_trace.c look at offline CPUs ... --- eee2775d9924b22643bd89b2e568cc5eed7e8a04 diff --cc kernel/exit.c index c98ff7a,263f95e..ae5d866 --- a/kernel/exit.c +++ b/kernel/exit.c @@@ -1011,9 -1009,8 +1011,10 @@@ NORET_TYPE void do_exit(long code if (tsk->splice_pipe) __free_pipe_info(tsk->splice_pipe); + validate_creds_for_do_exit(tsk); + preempt_disable(); + exit_rcu(); /* causes final put_task_struct in finish_task_switch(). */ tsk->state = TASK_DEAD; schedule();