Re: [PATCH v2] HID: sony: Fix input device leak when connecting a DS4 twice using USB/BT
From: Benjamin Tissoires <hidden>
Date: 2017-03-01 17:19:04
On Feb 24 2017 or thereabouts, Roderick Colenbrander wrote:
From: Roderick Colenbrander <roderick.colenbrander@sony.com>
When a user connects a DS4 twice using USB and BT, we reject the
second device connection after the setup work. We then perform
a cleanup, but during cleanup we are not removing the touchpad
device. This leads to leakage of an input device, which we would
never remove. It can likely result into a kernel oops as well
when the touchpad evdev node is accessed and the underlaying HID
device has been removed from the system.
Fixes: ac797b95f532 ("HID: sony: Make the DS4 touchpad a separate device")
Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
---Looks good to me: Reviewed-by: Benjamin Tissoires <redacted>
quoted hunk ↗ jump to hunk
drivers/hid/hid-sony.c | 2 ++ 1 file changed, 2 insertions(+)diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c index f405b07..740996f 100644 --- a/drivers/hid/hid-sony.c +++ b/drivers/hid/hid-sony.c@@ -2632,6 +2632,8 @@ static int sony_input_configured(struct hid_device *hdev, sony_leds_remove(sc); if (sc->quirks & SONY_BATTERY_SUPPORT) sony_battery_remove(sc); + if (sc->touchpad) + sony_unregister_touchpad(sc); sony_cancel_work_sync(sc); kfree(sc->output_report_dmabuf); sony_remove_dev_list(sc);-- 2.9.3