diff options
author | Michał Kępień <kernel@kempniu.pl> | 2017-03-08 09:20:10 -0800 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2017-03-08 14:28:53 -0800 |
commit | fabeb165afd52a3fb05b9b68e5a3550609b8e157 (patch) | |
tree | a5851d7d6d6a45dd1e571b05de4bc07be9670514 /drivers/net/phy/phy_led_triggers.c | |
parent | c470abd4fde40ea6a0846a2beab642a578c0b8cd (diff) |
Input: sparse-keymap - use a managed allocation for keymap copy
Some platform drivers use devm_input_allocate_device() together with
sparse_keymap_setup() in their .probe callbacks. While using the former
simplifies error handling, using the latter necessitates calling
sparse_keymap_free() in the error path and upon module unloading to
avoid leaking the copy of the keymap allocated by sparse_keymap_setup().
To help prevent such leaks and enable simpler error handling, make
sparse_keymap_setup() use devm_kmemdup() to create the keymap copy so
that it gets automatically freed.
This works for both managed and non-managed input devices as the keymap
is freed after the last reference to the input device is dropped.
Note that actions previously taken by sparse_keymap_free(), i.e. taking
the input device's mutex and zeroing its keycode and keycodemax fields,
are now redundant because the managed keymap will always be freed after
the input device is unregistered.
Signed-off-by: Michał Kępień <kernel@kempniu.pl>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/net/phy/phy_led_triggers.c')
0 files changed, 0 insertions, 0 deletions