)]}'
{
  "commit": "7bb59df83b190817f56c4e2fec3078d99d906ad4",
  "tree": "371add6842b2620dbedad6d4d240681f09118fe8",
  "parents": [
    "7ac28817536797fd40e9646452183606f9e17f71"
  ],
  "author": {
    "name": "Peter Hurley",
    "email": "peter@hurleysoftware.com",
    "time": "Thu Jun 30 13:53:53 2011 -0400"
  },
  "committer": {
    "name": "Gustavo F. Padovan",
    "email": "padovan@profusion.mobi",
    "time": "Thu Jun 30 15:47:50 2011 -0300"
  },
  "message": "Bluetooth: Fix hidp disconnect deadlocks and lost wakeup\n\nPartial revert of commit aabf6f89. When the hidp session thread\nwas converted from kernel_thread to kthread, the atomic/wakeups\nwere replaced with kthread_stop. kthread_stop has blocking semantics\nwhich are inappropriate for the hidp session kthread. In addition,\nthe kthread signals itself to terminate in hidp_process_hid_control()\n- it cannot do this with kthread_stop().\n\nLastly, a wakeup can be lost if the wakeup happens between checking\nfor the loop exit condition and setting the current state to\nTASK_INTERRUPTIBLE. (Without appropriate synchronization mechanisms,\nthe task state should not be changed between the condition test and\nthe yield - via schedule() - as this creates a race between the\nwakeup and resetting the state back to interruptible.)\n\nSigned-off-by: Peter Hurley \u003cpeter@hurleysoftware.com\u003e\nSigned-off-by: Gustavo F. Padovan \u003cpadovan@profusion.mobi\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c405a954a603341b52b51a98592ecccd618398e9",
      "old_mode": 33188,
      "old_path": "net/bluetooth/hidp/core.c",
      "new_id": "43b4c2deb7cc05bdc875e3f7b23a999468f5c1a4",
      "new_mode": 33188,
      "new_path": "net/bluetooth/hidp/core.c"
    },
    {
      "type": "modify",
      "old_id": "19e95004b28654fb14bb009d40efeec81b56eca1",
      "old_mode": 33188,
      "old_path": "net/bluetooth/hidp/hidp.h",
      "new_id": "af1bcc823f26d8196587be3624b8f091f29f1d8f",
      "new_mode": 33188,
      "new_path": "net/bluetooth/hidp/hidp.h"
    }
  ]
}
