提交 47514d85 编写于 作者: D Dmitry Torokhov 提交者: Zheng Zengkai

HID: vivaldi: fix sysfs attributes leak

stable inclusion
from stable-v5.10.106
commit 2c6a75ea32f99ba4b315d7b58f579493d7ac2a9a
bugzilla: https://gitee.com/openeuler/kernel/issues/I573US

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2c6a75ea32f99ba4b315d7b58f579493d7ac2a9a

--------------------------------

[ Upstream commit cc71d37f ]

The driver creates the top row map sysfs attribute in input_configured()
method; unfortunately we do not have a callback that is executed when HID
interface is unbound, thus we are leaking these sysfs attributes, for
example when device is disconnected.

To fix it let's switch to managed version of adding sysfs attributes which
will ensure that they are destroyed when the driver is unbound.

Fixes: 14c9c014 ("HID: add vivaldi HID driver")
Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
Tested-by: NStephen Boyd <swboyd@chromium.org>
Reviewed-by: NStephen Boyd <swboyd@chromium.org>
Signed-off-by: NJiri Kosina <jkosina@suse.cz>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: NYu Liao <liaoyu15@huawei.com>
Reviewed-by: NWei Li <liwei391@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 2a273ffc
...@@ -143,7 +143,7 @@ static void vivaldi_feature_mapping(struct hid_device *hdev, ...@@ -143,7 +143,7 @@ static void vivaldi_feature_mapping(struct hid_device *hdev,
static int vivaldi_input_configured(struct hid_device *hdev, static int vivaldi_input_configured(struct hid_device *hdev,
struct hid_input *hidinput) struct hid_input *hidinput)
{ {
return sysfs_create_group(&hdev->dev.kobj, &input_attribute_group); return devm_device_add_group(&hdev->dev, &input_attribute_group);
} }
static const struct hid_device_id vivaldi_table[] = { static const struct hid_device_id vivaldi_table[] = {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册