diff mbox series

Input: stmfts - add missed input_unregister_device

Message ID 20200507151147.792578-1-hslester96@gmail.com
State New
Headers show
Series Input: stmfts - add missed input_unregister_device | expand

Commit Message

Chuhong Yuan May 7, 2020, 3:11 p.m. UTC
This driver calls input_register_device() in probe, but misses
input_unregister_device() in probe failure and remove.
Add the missed function calls to fix it.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
---
 drivers/input/touchscreen/stmfts.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Dmitry Torokhov May 7, 2020, 4:01 p.m. UTC | #1
On Thu, May 07, 2020 at 11:11:47PM +0800, Chuhong Yuan wrote:
> This driver calls input_register_device() in probe, but misses
> input_unregister_device() in probe failure and remove.
> Add the missed function calls to fix it.

The input device in question is devm-managed and therefore does not need
explicit unregistering.

Thanks.
diff mbox series

Patch

diff --git a/drivers/input/touchscreen/stmfts.c b/drivers/input/touchscreen/stmfts.c
index b6f95f20f924..4345aa98a320 100644
--- a/drivers/input/touchscreen/stmfts.c
+++ b/drivers/input/touchscreen/stmfts.c
@@ -728,8 +728,10 @@  static int stmfts_probe(struct i2c_client *client,
 	}
 
 	err = devm_device_add_group(&client->dev, &stmfts_attribute_group);
-	if (err)
+	if (err) {
+		input_unregister_device(sdata->input);
 		return err;
+	}
 
 	pm_runtime_enable(&client->dev);
 	device_enable_async_suspend(&client->dev);
@@ -739,7 +741,10 @@  static int stmfts_probe(struct i2c_client *client,
 
 static int stmfts_remove(struct i2c_client *client)
 {
+	struct stmfts_data *sdata = i2c_get_clientdata(client);
+
 	pm_runtime_disable(&client->dev);
+	input_unregister_device(sdata->input);
 
 	return 0;
 }