)]}'
{
  "commit": "a5d8e467f83f6672104f276223a88e3b50cbd375",
  "tree": "13f66a14b75735e5bbff450ae1f8975a0cb92543",
  "parents": [
    "d822ed1094032ab524344a9a474c93128d9c2159"
  ],
  "author": {
    "name": "Mathieu Desnoyers",
    "email": "mathieu.desnoyers@efficios.com",
    "time": "Sat Apr 17 08:48:38 2010 -0400"
  },
  "committer": {
    "name": "Paul E. McKenney",
    "email": "paulmck@linux.vnet.ibm.com",
    "time": "Mon May 10 16:08:01 2010 -0700"
  },
  "message": "Debugobjects transition check\n\nImplement a basic state machine checker in the debugobjects.\n\nThis state machine checker detects races and inconsistencies within the \"active\"\nlife of a debugobject. The checker only keeps track of the current state; all\nthe state machine logic is kept at the object instance level.\n\nThe checker works by adding a supplementary \"unsigned int astate\" field to the\ndebug_obj structure. It keeps track of the current \"active state\" of the object.\n\nThe only constraints that are imposed on the states by the debugobjects system\nis that:\n\n- activation of an object sets the current active state to 0,\n- deactivation of an object expects the current active state to be 0.\n\nFor the rest of the states, the state mapping is determined by the specific\nobject instance. Therefore, the logic keeping track of the state machine is\nwithin the specialized instance, without any need to know about it at the\ndebugobject level.\n\nThe current object active state is changed by calling:\n\ndebug_object_active_state(addr, descr, expect, next)\n\nwhere \"expect\" is the expected state and \"next\" is the next state to move to if\nthe expected state is found. A warning is generated if the expected is not\nfound.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCC: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCC: akpm@linux-foundation.org\nCC: mingo@elte.hu\nCC: laijs@cn.fujitsu.com\nCC: dipankar@in.ibm.com\nCC: josh@joshtriplett.org\nCC: dvhltc@us.ibm.com\nCC: niv@us.ibm.com\nCC: peterz@infradead.org\nCC: rostedt@goodmis.org\nCC: Valdis.Kletnieks@vt.edu\nCC: dhowells@redhat.com\nCC: eric.dumazet@gmail.com\nCC: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8c243aaa86a73880d118f3f44374a0835d88503b",
      "old_mode": 33188,
      "old_path": "include/linux/debugobjects.h",
      "new_id": "597692f1fc8dfb05383914af2b2a254d944fbc48",
      "new_mode": 33188,
      "new_path": "include/linux/debugobjects.h"
    },
    {
      "type": "modify",
      "old_id": "b862b30369ffe5afa25c471263964d62321a2872",
      "old_mode": 33188,
      "old_path": "lib/debugobjects.c",
      "new_id": "076464fd20727cd450ab19583e18eabaf6fb5bb4",
      "new_mode": 33188,
      "new_path": "lib/debugobjects.c"
    }
  ]
}
