Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a5b33e6a authored by Wolfram Sang's avatar Wolfram Sang Committed by Dmitry Torokhov
Browse files

Input: lm8323 - do not leave dangling client data pointer



Do not leave dangling client data pointers when unbinding device from the
driver or when binding fails for some reason.

Signed-off-by: default avatarWolfram Sang <w.sang@pengutronix.de>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent d6372b70
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -670,8 +670,6 @@ static int __devinit lm8323_probe(struct i2c_client *client,
		goto fail1;
	}

	i2c_set_clientdata(client, lm);

	lm->client = client;
	lm->idev = idev;
	mutex_init(&lm->lock);
@@ -753,6 +751,8 @@ static int __devinit lm8323_probe(struct i2c_client *client,
		goto fail4;
	}

	i2c_set_clientdata(client, lm);

	device_init_wakeup(&client->dev, 1);
	enable_irq_wake(client->irq);

@@ -778,6 +778,8 @@ static int __devexit lm8323_remove(struct i2c_client *client)
	struct lm8323_chip *lm = i2c_get_clientdata(client);
	int i;

	i2c_set_clientdata(client, NULL);

	disable_irq_wake(client->irq);
	free_irq(client->irq, lm);
	cancel_work_sync(&lm->work);