)]}'
{
  "commit": "fabeb165afd52a3fb05b9b68e5a3550609b8e157",
  "tree": "a5851d7d6d6a45dd1e571b05de4bc07be9670514",
  "parents": [
    "c470abd4fde40ea6a0846a2beab642a578c0b8cd"
  ],
  "author": {
    "name": "Michał Kępień",
    "email": "kernel@kempniu.pl",
    "time": "Wed Mar 08 09:20:10 2017 -0800"
  },
  "committer": {
    "name": "Dmitry Torokhov",
    "email": "dmitry.torokhov@gmail.com",
    "time": "Wed Mar 08 14:28:53 2017 -0800"
  },
  "message": "Input: sparse-keymap - use a managed allocation for keymap copy\n\nSome platform drivers use devm_input_allocate_device() together with\nsparse_keymap_setup() in their .probe callbacks.  While using the former\nsimplifies error handling, using the latter necessitates calling\nsparse_keymap_free() in the error path and upon module unloading to\navoid leaking the copy of the keymap allocated by sparse_keymap_setup().\n\nTo help prevent such leaks and enable simpler error handling, make\nsparse_keymap_setup() use devm_kmemdup() to create the keymap copy so\nthat it gets automatically freed.\n\nThis works for both managed and non-managed input devices as the keymap\nis freed after the last reference to the input device is dropped.\n\nNote that actions previously taken by sparse_keymap_free(), i.e. taking\nthe input device\u0027s mutex and zeroing its keycode and keycodemax fields,\nare now redundant because the managed keymap will always be freed after\nthe input device is unregistered.\n\nSigned-off-by: Michał Kępień \u003ckernel@kempniu.pl\u003e\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e7409c45bdd009d6fb0fff7c30dd94bbe9f15e2c",
      "old_mode": 33188,
      "old_path": "drivers/input/sparse-keymap.c",
      "new_id": "12a3ad83296da259306a3bd6c2d934c0e862695d",
      "new_mode": 33188,
      "new_path": "drivers/input/sparse-keymap.c"
    }
  ]
}
