)]}'
{
  "commit": "b3fbab0571eb09746cc0283648165ec00efc8eb2",
  "tree": "63bc01cbf03a5df34a96af292a00df4a96dc148a",
  "parents": [
    "d5988af53102f3b73e5e0788be024ccfa51869de"
  ],
  "author": {
    "name": "Paul E. McKenney",
    "email": "paulmck@linux.vnet.ibm.com",
    "time": "Tue May 24 08:31:09 2011 -0700"
  },
  "committer": {
    "name": "Paul E. McKenney",
    "email": "paulmck@linux.vnet.ibm.com",
    "time": "Wed Sep 28 21:36:37 2011 -0700"
  },
  "message": "rcu: Restore checks for blocking in RCU read-side critical sections\n\nLong ago, using TREE_RCU with PREEMPT would result in \"scheduling\nwhile atomic\" diagnostics if you blocked in an RCU read-side critical\nsection.  However, PREEMPT now implies TREE_PREEMPT_RCU, which defeats\nthis diagnostic.  This commit therefore adds a replacement diagnostic\nbased on PROVE_RCU.\n\nBecause rcu_lockdep_assert() and lockdep_rcu_dereference() are now being\nused for things that have nothing to do with rcu_dereference(), rename\nlockdep_rcu_dereference() to lockdep_rcu_suspicious() and add a third\nargument that is a string indicating what is suspicious.  This third\nargument is passed in from a new third argument to rcu_lockdep_assert().\nUpdate all calls to rcu_lockdep_assert() to add an informative third\nargument.\n\nAlso, add a pair of rcu_lockdep_assert() calls from within\nrcu_note_context_switch(), one complaining if a context switch occurs\nin an RCU-bh read-side critical section and another complaining if a\ncontext switch occurs in an RCU-sched read-side critical section.\nThese are present only if the PROVE_RCU kernel parameter is enabled.\n\nFinally, fix some checkpatch whitespace complaints in lockdep.c.\n\nAgain, you must enable PROVE_RCU to see these new diagnostics.  But you\nare enabling PROVE_RCU to check out new RCU uses in any case, aren\u0027t you?\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ef820a3c378bb421a51fb0920f289571f8f96382",
      "old_mode": 33188,
      "old_path": "include/linux/lockdep.h",
      "new_id": "b6a56e37284c41e0954a7a794ddab4b617ebf547",
      "new_mode": 33188,
      "new_path": "include/linux/lockdep.h"
    },
    {
      "type": "modify",
      "old_id": "8f4f881a0ad8153dd82150745aee03881448a3b0",
      "old_mode": 33188,
      "old_path": "include/linux/rcupdate.h",
      "new_id": "8e7470d8b676cb75f7eacdcc4fadbc95dd1e3a66",
      "new_mode": 33188,
      "new_path": "include/linux/rcupdate.h"
    },
    {
      "type": "modify",
      "old_id": "91d67ce3a8d520a5cdc43d7abe6534c59710e79d",
      "old_mode": 33188,
      "old_path": "kernel/lockdep.c",
      "new_id": "1e48f1c3ea700348ddb3173084b06d347e0a5ec8",
      "new_mode": 33188,
      "new_path": "kernel/lockdep.c"
    },
    {
      "type": "modify",
      "old_id": "e432057f3b2147873f0de30ad00b16bbaecbedb1",
      "old_mode": 33188,
      "old_path": "kernel/pid.c",
      "new_id": "8cafe7e72ad2b83ff0bc7f7d0e12b710e6f9a519",
      "new_mode": 33188,
      "new_path": "kernel/pid.c"
    },
    {
      "type": "modify",
      "old_id": "ec5f472bc5b9cec2a5c43ab7f8a054ecca75b39a",
      "old_mode": 33188,
      "old_path": "kernel/sched.c",
      "new_id": "e24cebe0e6cb45d1f2a88da778282cd129664b5e",
      "new_mode": 33188,
      "new_path": "kernel/sched.c"
    }
  ]
}
