)]}'
{
  "commit": "ca5ecddfa8fcbd948c95530e7e817cee9fb43a3d",
  "tree": "0ad1c320c2e6612a9a230a58d8588850701c048c",
  "parents": [
    "d34a16661ed0fed433c9469d7cfa3ca4d30ca42e"
  ],
  "author": {
    "name": "Paul E. McKenney",
    "email": "paulmck@linux.vnet.ibm.com",
    "time": "Wed Apr 28 14:39:09 2010 -0700"
  },
  "committer": {
    "name": "Paul E. McKenney",
    "email": "paulmck@linux.vnet.ibm.com",
    "time": "Thu Aug 19 17:17:59 2010 -0700"
  },
  "message": "rcu: define __rcu address space modifier for sparse\n\nThis commit provides definitions for the __rcu annotation defined earlier.\nThis annotation permits sparse to check for correct use of RCU-protected\npointers.  If a pointer that is annotated with __rcu is accessed\ndirectly (as opposed to via rcu_dereference(), rcu_assign_pointer(),\nor one of their variants), sparse can be made to complain.  To enable\nsuch complaints, use the new default-disabled CONFIG_SPARSE_RCU_POINTER\nkernel configuration option.  Please note that these sparse complaints are\nintended to be a debugging aid, -not- a code-style-enforcement mechanism.\n\nThere are special rcu_dereference_protected() and rcu_access_pointer()\naccessors for use when RCU read-side protection is not required, for\nexample, when no other CPU has access to the data structure in question\nor while the current CPU hold the update-side lock.\n\nThis patch also updates a number of docbook comments that were showing\ntheir age.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Christopher Li \u003csparse@chrisli.org\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c1a62c56a660226b1592bc6bc269087adac58649",
      "old_mode": 33188,
      "old_path": "include/linux/compiler.h",
      "new_id": "320d6c94ff848d5db94fb1fd76576501a88e9a3a",
      "new_mode": 33188,
      "new_path": "include/linux/compiler.h"
    },
    {
      "type": "modify",
      "old_id": "9fbc54a2585d42cb9276adf2c2d168f53e883f63",
      "old_mode": 33188,
      "old_path": "include/linux/rcupdate.h",
      "new_id": "b973dea2d6b01a6ff8f23d408e8a9dd87b5ecaec",
      "new_mode": 33188,
      "new_path": "include/linux/rcupdate.h"
    },
    {
      "type": "modify",
      "old_id": "4d5d2f546dbff11ee6a4abb6ad2cc53770d45aeb",
      "old_mode": 33188,
      "old_path": "include/linux/srcu.h",
      "new_id": "6f456a720ff02c39a9b5061fa7c75789c6137e3a",
      "new_mode": 33188,
      "new_path": "include/linux/srcu.h"
    },
    {
      "type": "modify",
      "old_id": "4d169835fb362dcd6eb52a916a0d8e85e48c8fb8",
      "old_mode": 33188,
      "old_path": "kernel/rcupdate.c",
      "new_id": "6c79e851521c9e8e633e0cbaf61db5dd93b0b9ae",
      "new_mode": 33188,
      "new_path": "kernel/rcupdate.c"
    },
    {
      "type": "modify",
      "old_id": "1b4afd2e6ca089de0babdacc5781426ef118da5c",
      "old_mode": 33188,
      "old_path": "lib/Kconfig.debug",
      "new_id": "12465f2ef76623ae0250e658f9f73373d37d1461",
      "new_mode": 33188,
      "new_path": "lib/Kconfig.debug"
    }
  ]
}
