1. 10 Jul, 2008 1 commit
    • Nick Piggin's avatar
      Fix PREEMPT_RCU without HOTPLUG_CPU · 70ff0555
      Nick Piggin authored
      
      PREEMPT_RCU without HOTPLUG_CPU is broken.  The rcu_online_cpu is called
      to initially populate rcu_cpu_online_map with all online CPUs when the
      hotplug event handler is installed, and also to populate the map with
      CPUs as they come online.  The former case is meant to happen with and
      without HOTPLUG_CPU, but without HOTPLUG_CPU, the rcu_offline_cpu
      function is no-oped -- while it still gets called, it does not set the
      rcu CPU map.
      
      With a blank RCU CPU map, grace periods get to tick by completely
      oblivious to active RCU read side critical sections.  This results in
      free-before-grace bugs.
      
      Fix is obvious once the problem is known. (Also, change __devinit to
      __cpuinit so the function gets thrown away on !HOTPLUG_CPU kernels).
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Reported-and-tested-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Acked-by: default avatarIngo Molnar <mingo@elte.hu>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      [ Nick is my personal hero of the day - Linus ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      70ff0555
  2. 19 Jun, 2008 1 commit
  3. 19 Apr, 2008 1 commit
  4. 29 Feb, 2008 3 commits
  5. 25 Jan, 2008 2 commits