Messages in this thread Patch in this message | | | From | Navid Emamdoost <> | Subject | [PATCH] Input: stmfts: fix ref count leak in stmfts_input_open | Date | Sun, 14 Jun 2020 01:18:59 -0500 |
| |
in stmfts_input_open, pm_runtime_get_sync is called which increments the counter even in case of failure, leading to incorrect ref count. In case of failure, decrement the ref count before returning.
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> --- drivers/input/touchscreen/stmfts.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/input/touchscreen/stmfts.c b/drivers/input/touchscreen/stmfts.c index b6f95f20f924..1ef282d7cc14 100644 --- a/drivers/input/touchscreen/stmfts.c +++ b/drivers/input/touchscreen/stmfts.c @@ -339,11 +339,11 @@ static int stmfts_input_open(struct input_dev *dev) err = pm_runtime_get_sync(&sdata->client->dev); if (err < 0) - return err; + goto out; err = i2c_smbus_write_byte(sdata->client, STMFTS_MS_MT_SENSE_ON); if (err) - return err; + goto out; mutex_lock(&sdata->mutex); sdata->running = true; @@ -367,6 +367,9 @@ static int stmfts_input_open(struct input_dev *dev) } return 0; +out: + pm_runtime_put(&sdata->client->dev); + return err; } static void stmfts_input_close(struct input_dev *dev) -- 2.17.1
| |