mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-21 03:33:59 +08:00
rpmsg: glink: Fix reuse intents memory leak issue
Memory allocated for re-usable intents are not freed during channel
cleanup which causes memory leak in system.
Check and free all re-usable memory to avoid memory leak.
Fixes: 933b45da5d
("rpmsg: glink: Add support for TX intents")
Cc: stable@vger.kernel.org
Acked-By: Chris Lew <clew@codeaurora.org>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Arun Kumar Neelakantam <aneela@codeaurora.org>
Reported-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
parent
4623e8bf1d
commit
b85f6b6014
@ -241,10 +241,19 @@ static void qcom_glink_channel_release(struct kref *ref)
|
||||
{
|
||||
struct glink_channel *channel = container_of(ref, struct glink_channel,
|
||||
refcount);
|
||||
struct glink_core_rx_intent *tmp;
|
||||
unsigned long flags;
|
||||
int iid;
|
||||
|
||||
spin_lock_irqsave(&channel->intent_lock, flags);
|
||||
idr_for_each_entry(&channel->liids, tmp, iid) {
|
||||
kfree(tmp->data);
|
||||
kfree(tmp);
|
||||
}
|
||||
idr_destroy(&channel->liids);
|
||||
|
||||
idr_for_each_entry(&channel->riids, tmp, iid)
|
||||
kfree(tmp);
|
||||
idr_destroy(&channel->riids);
|
||||
spin_unlock_irqrestore(&channel->intent_lock, flags);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user