]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
NFC: fdp: Convert to use devres API
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 19 Jun 2017 10:08:50 +0000 (13:08 +0300)
committerSamuel Ortiz <sameo@linux.intel.com>
Thu, 22 Jun 2017 21:51:44 +0000 (23:51 +0200)
It looks like there are two leftovers, at least one of which can leak
the resource (IRQ).

Convert both places to use managed variants of the functions.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/nfc/fdp/fdp.c
drivers/nfc/fdp/i2c.c

index badd8167ac737103edb999d3eea6c334cf63846d..ec50027b0d8ba327b5b125249e1fdc142426b7e9 100644 (file)
@@ -749,11 +749,9 @@ int fdp_nci_probe(struct fdp_i2c_phy *phy, struct nfc_phy_ops *phy_ops,
        u32 protocols;
        int r;
 
-       info = kzalloc(sizeof(struct fdp_nci_info), GFP_KERNEL);
-       if (!info) {
-               r = -ENOMEM;
-               goto err_info_alloc;
-       }
+       info = devm_kzalloc(dev, sizeof(struct fdp_nci_info), GFP_KERNEL);
+       if (!info)
+               return -ENOMEM;
 
        info->phy = phy;
        info->phy_ops = phy_ops;
@@ -775,8 +773,7 @@ int fdp_nci_probe(struct fdp_i2c_phy *phy, struct nfc_phy_ops *phy_ops,
                                   tx_tailroom);
        if (!ndev) {
                nfc_err(dev, "Cannot allocate nfc ndev\n");
-               r = -ENOMEM;
-               goto err_alloc_ndev;
+               return -ENOMEM;
        }
 
        r = nci_register_device(ndev);
@@ -792,9 +789,6 @@ int fdp_nci_probe(struct fdp_i2c_phy *phy, struct nfc_phy_ops *phy_ops,
 
 err_regdev:
        nci_free_device(ndev);
-err_alloc_ndev:
-       kfree(info);
-err_info_alloc:
        return r;
 }
 EXPORT_SYMBOL(fdp_nci_probe);
@@ -808,7 +802,6 @@ void fdp_nci_remove(struct nci_dev *ndev)
 
        nci_unregister_device(ndev);
        nci_free_device(ndev);
-       kfree(info);
 }
 EXPORT_SYMBOL(fdp_nci_remove);
 
index 8a66b1845f270a1273e4c8e3cff742756ebc6246..c955f1f5139d0479cf19fd48801a912af928f065 100644 (file)
@@ -303,8 +303,7 @@ static int fdp_nci_i2c_probe(struct i2c_client *client)
                return -ENODEV;
        }
 
-       phy = devm_kzalloc(dev, sizeof(struct fdp_i2c_phy),
-                          GFP_KERNEL);
+       phy = devm_kzalloc(dev, sizeof(struct fdp_i2c_phy), GFP_KERNEL);
        if (!phy)
                return -ENOMEM;
 
@@ -312,9 +311,10 @@ static int fdp_nci_i2c_probe(struct i2c_client *client)
        phy->next_read_size = FDP_NCI_I2C_MIN_PAYLOAD;
        i2c_set_clientdata(client, phy);
 
-       r = request_threaded_irq(client->irq, NULL, fdp_nci_i2c_irq_thread_fn,
-                                IRQF_TRIGGER_RISING | IRQF_ONESHOT,
-                                FDP_I2C_DRIVER_NAME, phy);
+       r = devm_request_threaded_irq(dev, client->irq,
+                                     NULL, fdp_nci_i2c_irq_thread_fn,
+                                     IRQF_TRIGGER_RISING | IRQF_ONESHOT,
+                                     FDP_I2C_DRIVER_NAME, phy);
 
        if (r < 0) {
                nfc_err(&client->dev, "Unable to register IRQ handler\n");