In fsl_mc_device_add(), use put_device() to give up the
device reference instead of kfree().

Fixes: bbf9d17d9875 ("staging: fsl-mc: Freescale Management Complex (fsl-mc) 
bus driver")
Cc: sta...@vger.kernel.org
Signed-off-by: Haoxiang Li <haoxiang_li2...@163.com>
---
 drivers/bus/fsl-mc/fsl-mc-bus.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/bus/fsl-mc/fsl-mc-bus.c b/drivers/bus/fsl-mc/fsl-mc-bus.c
index a8be8cf246fb..dfd79ecf65b6 100644
--- a/drivers/bus/fsl-mc/fsl-mc-bus.c
+++ b/drivers/bus/fsl-mc/fsl-mc-bus.c
@@ -905,9 +905,7 @@ int fsl_mc_device_add(struct fsl_mc_obj_desc *obj_desc,
        return 0;
 
 error_cleanup_dev:
-       kfree(mc_dev->regions);
-       kfree(mc_bus);
-       kfree(mc_dev);
+       put_device(&mc_dev->dev);
 
        return error;
 }
-- 
2.25.1


Reply via email to