)]}'
{
  "commit": "4ce61d1c7a8ef4c1337fa983a3036d4010e3c19e",
  "tree": "e7bf734478bc3f726d883439d5fdc44699d9a20a",
  "parents": [
    "689d79469b64662440a93ffbd1cbf994510bcbf6"
  ],
  "author": {
    "name": "Satyam Sharma",
    "email": "ssatyam@cse.iitk.ac.in",
    "time": "Wed May 16 23:50:16 2007 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@sunset.davemloft.net",
    "time": "Thu May 17 14:20:30 2007 -0700"
  },
  "message": "[BLUETOOTH]: Fix locking in hci_sock_dev_event().\n\nWe presently use lock_sock() to acquire a lock on a socket in\nhci_sock_dev_event(), but this goes BUG because lock_sock()\ncan sleep and we\u0027re already holding a read-write spinlock at\nthat point. So, we must use the non-sleeping BH version,\nbh_lock_sock().\n\nHowever, hci_sock_dev_event() is called from user context and\nhence using simply bh_lock_sock() will deadlock against a\nconcurrent softirq that tries to acquire a lock on the same\nsocket. Hence, disabling BH\u0027s before acquiring the socket lock\nand enable them afterwards, is the proper solution to fix\nsocket locking in hci_sock_dev_event().\n\nSigned-off-by: Satyam Sharma \u003cssatyam@cse.iitk.ac.in\u003e\nSigned-off-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bfc9a35bad3378b37218bfb0b6bb956f8e1f8fda",
      "old_mode": 33188,
      "old_path": "net/bluetooth/hci_sock.c",
      "new_id": "1dae3dfc66a9dd6a1ad90cfc790dea4f28fb85ef",
      "new_mode": 33188,
      "new_path": "net/bluetooth/hci_sock.c"
    }
  ]
}
