Instead of manually handling the frees use devm. There was also a free
missing in the unregister call which is not needed with devm.

Signed-off-by: Hauke Mehrtens <ha...@hauke-m.de>
---
 drivers/usb/host/bcma-hcd.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/usb/host/bcma-hcd.c b/drivers/usb/host/bcma-hcd.c
index b4ec4ec..34ab0a4 100644
--- a/drivers/usb/host/bcma-hcd.c
+++ b/drivers/usb/host/bcma-hcd.c
@@ -225,7 +225,8 @@ static int bcma_hcd_probe(struct bcma_device *dev)
        if (dma_set_mask_and_coherent(dev->dma_dev, DMA_BIT_MASK(32)))
                return -EOPNOTSUPP;
 
-       usb_dev = kzalloc(sizeof(struct bcma_hcd_device), GFP_KERNEL);
+       usb_dev = devm_kzalloc(&dev->dev, sizeof(struct bcma_hcd_device),
+                              GFP_KERNEL);
        if (!usb_dev)
                return -ENOMEM;
 
@@ -239,10 +240,8 @@ static int bcma_hcd_probe(struct bcma_device *dev)
                ohci_addr = 0x18009000;
 
        usb_dev->ohci_dev = bcma_hcd_create_pdev(dev, true, ohci_addr);
-       if (IS_ERR(usb_dev->ohci_dev)) {
-               err = PTR_ERR(usb_dev->ohci_dev);
-               goto err_free_usb_dev;
-       }
+       if (IS_ERR(usb_dev->ohci_dev))
+               return PTR_ERR(usb_dev->ohci_dev);
 
        usb_dev->ehci_dev = bcma_hcd_create_pdev(dev, false, dev->addr);
        if (IS_ERR(usb_dev->ehci_dev)) {
@@ -255,8 +254,6 @@ static int bcma_hcd_probe(struct bcma_device *dev)
 
 err_unregister_ohci_dev:
        platform_device_unregister(usb_dev->ohci_dev);
-err_free_usb_dev:
-       kfree(usb_dev);
        return err;
 }
 
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to