NFC: pn544: Use devm_kzalloc API
authorSamuel Ortiz <sameo@linux.intel.com>
Tue, 18 Dec 2012 17:07:37 +0000 (18:07 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Wed, 9 Jan 2013 23:51:53 +0000 (00:51 +0100)
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/nfc/pn544/i2c.c

index ec79f355edc1062170f7ababb7c91cec167da21d..7f96ca2c46bd13cfa1d8dafedb27abd9828b5740 100644 (file)
@@ -376,12 +376,12 @@ static int __devinit pn544_hci_i2c_probe(struct i2c_client *client,
                return -ENODEV;
        }
 
-       phy = kzalloc(sizeof(struct pn544_i2c_phy), GFP_KERNEL);
+       phy = devm_kzalloc(&client->dev, sizeof(struct pn544_i2c_phy),
+                          GFP_KERNEL);
        if (!phy) {
                dev_err(&client->dev,
                        "Cannot allocate memory for pn544 i2c phy.\n");
-               r = -ENOMEM;
-               goto err_phy_alloc;
+               return -ENOMEM;
        }
 
        phy->i2c_dev = client;
@@ -390,20 +390,18 @@ static int __devinit pn544_hci_i2c_probe(struct i2c_client *client,
        pdata = client->dev.platform_data;
        if (pdata == NULL) {
                dev_err(&client->dev, "No platform data\n");
-               r = -EINVAL;
-               goto err_pdata;
+               return -EINVAL;
        }
 
        if (pdata->request_resources == NULL) {
                dev_err(&client->dev, "request_resources() missing\n");
-               r = -EINVAL;
-               goto err_pdata;
+               return -EINVAL;
        }
 
        r = pdata->request_resources(client);
        if (r) {
                dev_err(&client->dev, "Cannot get platform resources\n");
-               goto err_pdata;
+               return r;
        }
 
        phy->gpio_en = pdata->get_gpio(NFC_GPIO_ENABLE);
@@ -435,10 +433,6 @@ err_rti:
        if (pdata->free_resources != NULL)
                pdata->free_resources();
 
-err_pdata:
-       kfree(phy);
-
-err_phy_alloc:
        return r;
 }
 
@@ -458,8 +452,6 @@ static __devexit int pn544_hci_i2c_remove(struct i2c_client *client)
        if (pdata->free_resources)
                pdata->free_resources();
 
-       kfree(phy);
-
        return 0;
 }