)]}'
{
  "commit": "f3b577dec1f2ce32d2db6d2ca6badff7002512af",
  "tree": "c9d5d84b2d3e4ae1251f69932a526367a2bac7fa",
  "parents": [
    "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
  ],
  "author": {
    "name": "Daniel J Blueman",
    "email": "daniel.blueman@gmail.com",
    "time": "Tue Jun 01 14:06:13 2010 +0100"
  },
  "committer": {
    "name": "Paul E. McKenney",
    "email": "paulmck@linux.vnet.ibm.com",
    "time": "Wed Jun 23 06:50:44 2010 -0700"
  },
  "message": "rcu: apply RCU protection to wake_affine()\n\nThe task_group() function returns a pointer that must be protected\nby either RCU, the -\u003ealloc_lock, or the cgroup lock (see the\nrcu_dereference_check() in task_subsys_state(), which is invoked by\ntask_group()).  The wake_affine() function currently does none of these,\nwhich means that a concurrent update would be within its rights to free\nthe structure returned by task_group().  Because wake_affine() uses this\nstructure only to compute load-balancing heuristics, there is no reason\nto acquire either of the two locks.\n\nTherefore, this commit introduces an RCU read-side critical section that\nstarts before the first call to task_group() and ends after the last use\nof the \"tg\" pointer returned from task_group().  Thanks to Li Zefan for\npointing out the need to extend the RCU read-side critical section from\nthat proposed by the original patch.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "eed35eded6029c82d126ea24bbdfa2a5731ad8a9",
      "old_mode": 33188,
      "old_path": "kernel/sched_fair.c",
      "new_id": "a878b5332daad5d7db16625f298a4e963edac909",
      "new_mode": 33188,
      "new_path": "kernel/sched_fair.c"
    }
  ]
}
