staging: fsl-mc: don't use devres api for refcounted objects
authorLaurentiu Tudor <laurentiu.tudor@nxp.com>
Tue, 7 Feb 2017 15:43:47 +0000 (09:43 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Feb 2017 12:26:01 +0000 (13:26 +0100)
Mixing two memory management systems, in this case
managed device resource api and refcounted objects
is a bad idea. Lifetime of an object is controlled
by its refcount so allocating it with other apis
that have their own lifetime control is not ok.
Drop devm_*() apis in favor of plain allocations.

Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
Acked-by: Stuart Yoder <stuart.yoder@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fsl-mc/bus/fsl-mc-bus.c

index 5963e98..f310687 100644 (file)
@@ -430,7 +430,7 @@ static void fsl_mc_device_release(struct device *dev)
                mc_bus = to_fsl_mc_bus(mc_dev);
 
        if (mc_bus)
-               devm_kfree(mc_dev->dev.parent, mc_bus);
+               kfree(mc_bus);
        else
                kmem_cache_free(mc_dev_cache, mc_dev);
 }
@@ -457,7 +457,7 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc,
                /*
                 * Allocate an MC bus device object:
                 */
-               mc_bus = devm_kzalloc(parent_dev, sizeof(*mc_bus), GFP_KERNEL);
+               mc_bus = kzalloc(sizeof(*mc_bus), GFP_KERNEL);
                if (!mc_bus)
                        return -ENOMEM;
 
@@ -562,7 +562,7 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc,
 error_cleanup_dev:
        kfree(mc_dev->regions);
        if (mc_bus)
-               devm_kfree(parent_dev, mc_bus);
+               kfree(mc_bus);
        else
                kmem_cache_free(mc_dev_cache, mc_dev);