diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2017-06-19 13:08:50 +0300 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2017-06-22 23:51:44 +0200 |
commit | 7b9fcda91e18f13905e07f0145cc7efbe0e503dc (patch) | |
tree | 763db1d7c107ccce22d83467afd33f8c142730b1 /drivers/nfc/fdp/fdp.c | |
parent | 8597c0920d6f4af66d2100b93599b0c0850dffdd (diff) | |
download | linux-7b9fcda91e18f13905e07f0145cc7efbe0e503dc.tar.gz linux-7b9fcda91e18f13905e07f0145cc7efbe0e503dc.tar.xz |
NFC: fdp: Convert to use devres API
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>
Diffstat (limited to 'drivers/nfc/fdp/fdp.c')
-rw-r--r-- | drivers/nfc/fdp/fdp.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/nfc/fdp/fdp.c b/drivers/nfc/fdp/fdp.c index badd8167ac73..ec50027b0d8b 100644 --- a/drivers/nfc/fdp/fdp.c +++ b/drivers/nfc/fdp/fdp.c @@ -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); |