diff options
Diffstat (limited to 'drivers/hid/hid-input.c')
-rw-r--r-- | drivers/hid/hid-input.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index 4e94ea3e280a..a481eaf39e88 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c | |||
@@ -1582,6 +1582,7 @@ static struct hid_input *hidinput_allocate(struct hid_device *hid, | |||
1582 | input_dev->dev.parent = &hid->dev; | 1582 | input_dev->dev.parent = &hid->dev; |
1583 | 1583 | ||
1584 | hidinput->input = input_dev; | 1584 | hidinput->input = input_dev; |
1585 | hidinput->application = application; | ||
1585 | list_add_tail(&hidinput->list, &hid->inputs); | 1586 | list_add_tail(&hidinput->list, &hid->inputs); |
1586 | 1587 | ||
1587 | INIT_LIST_HEAD(&hidinput->reports); | 1588 | INIT_LIST_HEAD(&hidinput->reports); |
@@ -1677,8 +1678,7 @@ static struct hid_input *hidinput_match_application(struct hid_report *report) | |||
1677 | struct hid_input *hidinput; | 1678 | struct hid_input *hidinput; |
1678 | 1679 | ||
1679 | list_for_each_entry(hidinput, &hid->inputs, list) { | 1680 | list_for_each_entry(hidinput, &hid->inputs, list) { |
1680 | if (hidinput->report && | 1681 | if (hidinput->application == report->application) |
1681 | hidinput->report->application == report->application) | ||
1682 | return hidinput; | 1682 | return hidinput; |
1683 | } | 1683 | } |
1684 | 1684 | ||
@@ -1815,6 +1815,7 @@ void hidinput_disconnect(struct hid_device *hid) | |||
1815 | input_unregister_device(hidinput->input); | 1815 | input_unregister_device(hidinput->input); |
1816 | else | 1816 | else |
1817 | input_free_device(hidinput->input); | 1817 | input_free_device(hidinput->input); |
1818 | kfree(hidinput->name); | ||
1818 | kfree(hidinput); | 1819 | kfree(hidinput); |
1819 | } | 1820 | } |
1820 | 1821 | ||