MLK-11908 mfd: MAX17135: don't free i2c device client
authorFugang Duan <b38611@freescale.com>
Thu, 26 Nov 2015 08:31:14 +0000 (16:31 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:49:27 +0000 (14:49 -0500)
i2c device client shouldn't be freed by i2c device driver, there have
problems in below cases:
- one device match to different drivers, the second matched driver will
  cannot access i2c device client if it is freed by the first matched driver.
- one module driver insmod: the first insmod fail free client due to system
  low memory, after kswapd system free pages and has enough free pages, the
  second insmod will cause match failed.

Signed-off-by: Fugang Duan <B38611@freescale.com>
drivers/mfd/max17135-core.c

index e5a5270..f663f80 100644 (file)
@@ -150,10 +150,8 @@ static int max17135_probe(struct i2c_client *client,
 
        /* Create the PMIC data structure */
        max17135 = kzalloc(sizeof(struct max17135), GFP_KERNEL);
-       if (max17135 == NULL) {
-               kfree(client);
+       if (max17135 == NULL)
                return -ENOMEM;
-       }
 
        /* Initialize the PMIC data structure */
        i2c_set_clientdata(client, max17135);