Commit 9f578fc3 authored by Gaosheng Cui's avatar Gaosheng Cui Committed by Lin Yujun
Browse files

drivers: soc: xilinx: add the missing kfree in xlnx_add_cb_for_suspend()

stable inclusion
from stable-v6.6.64
commit 882d7afaa4b82c20a7be7a3a039532a80ebacd23
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBEADL

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=882d7afaa4b82c20a7be7a3a039532a80ebacd23



--------------------------------

[ Upstream commit 44ed4f90a97ff6f339e50ac01db71544e0990efc ]

If we fail to allocate memory for cb_data by kmalloc, the memory
allocation for eve_data is never freed, add the missing kfree()
in the error handling path.

Fixes: 05e5ba40 ("driver: soc: xilinx: Add support of multiple callbacks for same event in event management driver")
Signed-off-by: default avatarGaosheng Cui <cuigaosheng1@huawei.com>
Link: https://lore.kernel.org/r/20240706065155.452764-1-cuigaosheng1@huawei.com


Signed-off-by: default avatarMichal Simek <michal.simek@amd.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarLin Yujun <linyujun809@huawei.com>
parent fc7fa9bf
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -174,8 +174,10 @@ static int xlnx_add_cb_for_suspend(event_cb_func_t cb_fun, void *data)
	INIT_LIST_HEAD(&eve_data->cb_list_head);

	cb_data = kmalloc(sizeof(*cb_data), GFP_KERNEL);
	if (!cb_data)
	if (!cb_data) {
		kfree(eve_data);
		return -ENOMEM;
	}
	cb_data->eve_cb = cb_fun;
	cb_data->agent_data = data;