firmware: arm_ffa: Fix memory leak by freeing notifier callback node
authorSudeep Holla <sudeep.holla@arm.com>
Wed, 28 May 2025 08:49:41 +0000 (09:49 +0100)
committerSudeep Holla <sudeep.holla@arm.com>
Mon, 9 Jun 2025 10:24:43 +0000 (11:24 +0100)
Commit e0573444edbf ("firmware: arm_ffa: Add interfaces to request
notification callbacks") adds support for notifier callbacks by allocating
and inserting a callback node into a hashtable during registration of
notifiers. However, during unregistration, the code only removes the
node from the hashtable without freeing the associated memory, resulting
in a memory leak.

Resolve the memory leak issue by ensuring the allocated notifier callback
node is properly freed after it is removed from the hashtable entry.

Fixes: e0573444edbf ("firmware: arm_ffa: Add interfaces to request notification callbacks")
Message-Id: <20250528-ffa_notif_fix-v1-1-5ed7bc7f8437@arm.com>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/firmware/arm_ffa/driver.c

index fe55613a8ea993378474671d3c5756309da34fbc..6f75cdf29720993b1cd95eb7d3a36d01b0fdd1de 100644 (file)
@@ -1284,6 +1284,7 @@ update_notifier_cb(struct ffa_device *dev, int notify_id, void *cb,
                hash_add(drv_info->notifier_hash, &cb_info->hnode, notify_id);
        } else {
                hash_del(&cb_info->hnode);
+               kfree(cb_info);
        }
 
        return 0;