)]}'
{
  "commit": "24312d34c95702e51240f58c073db30630170fbf",
  "tree": "9f3849204b3211e270397ac75f52b57bebca2892",
  "parents": [
    "9ed2cb7819e7df0e0fe0cce574c64e57b4806fe1"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Mon May 14 15:04:50 2012 -0700"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Fri Jun 01 15:18:19 2012 +0800"
  },
  "message": "workqueue: skip nr_running sanity check in worker_enter_idle() if trustee is active\n\ncommit 544ecf310f0e7f51fa057ac2a295fc1b3b35a9d3 upstream.\n\nworker_enter_idle() has WARN_ON_ONCE() which triggers if nr_running\nisn\u0027t zero when every worker is idle.  This can trigger spuriously\nwhile a cpu is going down due to the way trustee sets %WORKER_ROGUE\nand zaps nr_running.\n\nIt first sets %WORKER_ROGUE on all workers without updating\nnr_running, releases gcwq-\u003elock, schedules, regrabs gcwq-\u003elock and\nthen zaps nr_running.  If the last running worker enters idle\ninbetween, it would see stale nr_running which hasn\u0027t been zapped yet\nand trigger the WARN_ON_ONCE().\n\nFix it by performing the sanity check iff the trustee is idle.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5abf42f63c0825f31164a9debc4e30c06ce1f9ee",
      "old_mode": 33188,
      "old_path": "kernel/workqueue.c",
      "new_id": "7da267c8d0d5a43fcb1cda0827c3aaaa36248be5",
      "new_mode": 33188,
      "new_path": "kernel/workqueue.c"
    }
  ]
}
