]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drivers: soc: xilinx: add the missing kfree in xlnx_add_cb_for_suspend()
authorGaosheng Cui <cuigaosheng1@huawei.com>
Sat, 6 Jul 2024 06:51:55 +0000 (14:51 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2024 12:52:56 +0000 (13:52 +0100)
[ 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: 05e5ba40ea7a ("driver: soc: xilinx: Add support of multiple callbacks for same event in event management driver")
Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
Link: https://lore.kernel.org/r/20240706065155.452764-1-cuigaosheng1@huawei.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/soc/xilinx/xlnx_event_manager.c

index f529e1346247cce1507200dcb10fd794ab06ce6c..85df6b9c04ee693a2c13cf8050592b207e4ae4b9 100644 (file)
@@ -188,8 +188,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;