Commit 52f527d0 authored by Haoxiang Li's avatar Haoxiang Li Committed by Christophe Leroy (CS GROUP)
Browse files

bus: fsl-mc: fix an error handling in fsl_mc_device_add()



In fsl_mc_device_add(), device_initialize() is called first.
put_device() should be called to drop the reference if error
occurs. And other resources would be released via put_device
-> fsl_mc_device_release. So remove redundant kfree() in
error handling path.

Fixes: bbf9d17d ("staging: fsl-mc: Freescale Management Complex (fsl-mc) bus driver")
Cc: stable@vger.kernel.org
Reported-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/all/b767348e-d89c-416e-acea-1ebbff3bea20@stanley.mountain/


Signed-off-by: default avatarSu Hui <suhui@nfschina.com>
Suggested-by: default avatarChristophe Leroy (CS GROUP) <chleroy@kernel.org>
Signed-off-by: default avatarHaoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
Reviewed-by: default avatarIoana Ciornei <ioana.ciornei@nxp.com>
Link: https://lore.kernel.org/r/20260124102054.1613093-1-lihaoxiang@isrc.iscas.ac.cn


Signed-off-by: default avatarChristophe Leroy (CS GROUP) <chleroy@kernel.org>
parent 65d57276
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -896,11 +896,7 @@ int fsl_mc_device_add(struct fsl_mc_obj_desc *obj_desc,
	return 0;

error_cleanup_dev:
	kfree(mc_dev->regions);
	if (mc_bus)
		kfree(mc_bus);
	else
		kfree(mc_dev);
	put_device(&mc_dev->dev);

	return error;
}