mfd: Fix dangling pointers
[firefly-linux-kernel-4.4.55.git] / drivers / mfd / ab3100-core.c
index e4ca5909e4242261ac9a2588954607ec129f18d4..16898211cd1a0050e5fd388af662057c8cde4c08 100644 (file)
@@ -920,6 +920,7 @@ static int __init ab3100_probe(struct i2c_client *client,
        i2c_unregister_device(ab3100->testreg_client);
  exit_no_testreg_client:
  exit_no_detect:
+       i2c_set_clientdata(client, NULL);
        kfree(ab3100);
        return err;
 }
@@ -941,6 +942,7 @@ static int __exit ab3100_remove(struct i2c_client *client)
         * their notifiers so deactivate IRQ
         */
        free_irq(client->irq, ab3100);
+       i2c_set_clientdata(client, NULL);
        kfree(ab3100);
        return 0;
 }