From: Laurentiu Tudor <laurentiu.tudor@xxxxxxx> 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@xxxxxxx> --- drivers/staging/fsl-mc/bus/fsl-mc-bus.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/fsl-mc-bus.c b/drivers/staging/fsl-mc/bus/fsl-mc-bus.c index 5963e98..f310687 100644 --- a/drivers/staging/fsl-mc/bus/fsl-mc-bus.c +++ b/drivers/staging/fsl-mc/bus/fsl-mc-bus.c @@ -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); -- 1.8.3.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel