Linus Torvalds cb7e9704d5 Merge branch 'rcu/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu
Pull RCU fixes from Paul McKenney:
 "I must confess that this past merge window was not RCU's best showing.
  This series contains three more fixes for RCU regressions:

   1.   A fix to __DECLARE_TRACE_RCU() that causes it to act as an
        interrupt from idle rather than as a task switch from idle.
        This change is needed due to the recent use of _rcuidle()
        tracepoints that can be invoked from interrupt handlers as well
        as from idle.  Without this fix, invoking _rcuidle() tracepoints
        from interrupt handlers results in splats and (more seriously)
        confusion on RCU's part as to whether a given CPU is idle or not.
        This confusion can in turn result in too-short grace periods and
        therefore random memory corruption.

   2.   A fix to a subtle deadlock that could result due to RCU doing
        a wakeup while holding one of its rcu_node structure's locks.
        Although the probability of occurrence is low, it really
        does happen.  The fix, courtesy of Steven Rostedt, uses
        irq_work_queue() to avoid the deadlock.

   3.   A fix to a silent deadlock (invisible to lockdep) due to the
        interaction of timeouts posted by RCU debug code enabled by
        CONFIG_PROVE_RCU_DELAY=y, grace-period initialization, and CPU
        hotplug operations.  This will not occur in production kernels,
        but really does occur in randconfig testing.  Diagnosis courtesy
        of Steven Rostedt"

* 'rcu/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
  rcu: Fix deadlock with CPU hotplug, RCU GP init, and timer migration
  rcu: Don't call wakeup() with rcu_node structure ->lock held
  trace: Allow idle-safe tracepoints to be called from irq
2013-06-13 12:36:42 -07:00
..
2013-05-17 14:31:05 -04:00
2013-05-04 12:31:18 -07:00
2013-03-01 13:39:00 -08:00
2013-01-02 17:36:10 -08:00
2013-05-07 19:46:02 -07:00
2012-12-02 00:05:12 +00:00
2013-04-29 15:40:23 -04:00
2013-03-23 16:11:31 -07:00
2013-03-22 15:18:18 -07:00
2013-05-02 09:03:55 -07:00
2013-03-12 11:30:04 -07:00
2013-05-10 14:37:17 +01:00
2013-05-01 16:36:22 +05:30
2013-03-28 10:10:25 -06:00
2012-12-24 09:36:38 -07:00
2013-02-26 02:46:08 -05:00
2013-05-07 18:38:27 -07:00
2013-03-15 15:09:43 +10:30
2013-04-29 18:28:40 -07:00
2012-11-22 13:43:27 +09:00
2013-05-07 02:16:31 -04:00
2013-02-22 23:31:31 -05:00
2012-11-08 16:58:30 +01:00
2013-05-06 13:07:33 +02:00
2013-01-25 21:03:54 -08:00
2013-02-06 15:59:47 -05:00
2013-01-29 13:59:57 -05:00
2013-01-10 11:44:38 -06:00
2013-04-30 17:04:06 -07:00
2013-04-01 11:04:50 -07:00
2013-04-30 17:04:00 -07:00
2013-03-15 15:09:43 +10:30
2012-12-14 13:06:40 +10:30
2012-12-25 18:45:06 -05:00
2013-04-29 18:28:44 -07:00
2012-12-11 17:22:27 -08:00
2013-05-04 14:47:26 -04:00
2013-05-07 11:22:14 -07:00
2013-04-29 15:54:28 -07:00
2013-03-12 11:40:53 -04:00
2013-03-19 09:47:30 +01:00
2013-02-26 09:34:29 -08:00
2013-04-29 15:54:28 -07:00
2013-04-12 10:26:23 +02:00
2013-04-09 14:13:29 -04:00
2013-02-19 08:43:34 +01:00
2013-03-29 15:31:30 -04:00
2013-04-30 15:50:12 +05:30
2013-03-21 11:47:51 -04:00
2013-01-15 22:43:15 -08:00
2013-03-20 12:10:38 -04:00
2013-03-28 11:10:22 -07:00
2013-04-29 15:54:37 -07:00