)]}'
{
  "commit": "b4f34d8d9d26b2428fa7cf7c8f97690a297978e6",
  "tree": "9b513935dfb1b7b83a711462ff4bc9a6f3dbfce0",
  "parents": [
    "2c8e1411e93391c5a78f55b09697a997474a4707"
  ],
  "author": {
    "name": "David Herrmann",
    "email": "dh.herrmann@gmail.com",
    "time": "Sat Apr 06 20:28:46 2013 +0200"
  },
  "committer": {
    "name": "Gustavo Padovan",
    "email": "gustavo.padovan@collabora.co.uk",
    "time": "Wed Apr 17 03:03:51 2013 -0300"
  },
  "message": "Bluetooth: hidp: add new session-management helpers\n\nThis is a rewrite of the HIDP session management. It implements HIDP as an\nl2cap_user sub-module so we get proper notification when the underlying\nconnection goes away.\n\nThe helpers are not yet used but only added in this commit. The old\nsession management is still used and will be removed in a following patch.\n\nThe old session-management was flawed. Hotplugging is horribly broken and\nwe have no way of getting notified when the underlying connection goes\ndown. The whole idea of removing the HID/input sub-devices from within the\nsession itself is broken and suffers from major dead-locks. We never can\nguarantee that the session can unregister itself as long as we use\nsynchronous shutdowns. This can only work with asynchronous shutdowns.\nHowever, in this case we _must_ be able to unregister the session from the\noutside as otherwise the l2cap_conn object might be unlinked before we\nare.\n\nThe new session-management is based on l2cap_user. There is only one\nway how to add a session and how to delete a session: \"probe\" and \"remove\"\ncallbacks from l2cap_user.\nThis guarantees that the session can be registered and unregistered at\n_any_ time without any synchronous shutdown.\nOn the other hand, much work has been put into proper session-refcounting.\nWe can unregister/unlink the session only if we can guarantee that it will\nstay alive. But for asynchronous shutdowns we never know when the last\nuser goes away so we must use proper ref-counting.\n\nThe old -\u003econn field has been renamed to -\u003ehconn so we can reuse -\u003econn in\nthe new session management. No other existing HIDP code is modified.\n\nSigned-off-by: David Herrmann \u003cdh.herrmann@gmail.com\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nSigned-off-by: Gustavo Padovan \u003cgustavo.padovan@collabora.co.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cef1021d540391c1960a35468a99281fc366f69c",
      "old_mode": 33188,
      "old_path": "net/bluetooth/hidp/core.c",
      "new_id": "8d30a33b27d9e4c12cb79e2034a0c2226d2db205",
      "new_mode": 33188,
      "new_path": "net/bluetooth/hidp/core.c"
    },
    {
      "type": "modify",
      "old_id": "c844420617932ae0df5e47b542a7c1fe6a537dbc",
      "old_mode": 33188,
      "old_path": "net/bluetooth/hidp/hidp.h",
      "new_id": "c4fb980c2434d39c95a14dfc81a9f7a47c7b162a",
      "new_mode": 33188,
      "new_path": "net/bluetooth/hidp/hidp.h"
    }
  ]
}
