]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: iris: gen1: Destroy internal buffers after FW releases
authorDikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Mon, 29 Dec 2025 06:31:22 +0000 (12:01 +0530)
committerSasha Levin <sashal@kernel.org>
Wed, 4 Mar 2026 12:21:09 +0000 (07:21 -0500)
[ Upstream commit 1dabf00ee206eceb0f08a1fe5d1ce635f9064338 ]

After the firmware releases internal buffers, the driver was not
destroying them. This left stale allocations that were no longer used,
especially across resolution changes where new buffers are allocated per
the updated requirements. As a result, memory was wasted until session
close.

Destroy internal buffers once the release response is received from the
firmware.

Fixes: 73702f45db81 ("media: iris: allocate, initialize and queue internal buffers")
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Reviewed-by: Vikash Garodia <vikash.garodia@oss.qualcomm.com>
Cc: stable@vger.kernel.org
Signed-off-by: Bryan O'Donoghue <bod@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c

index ffb50c98a5b6f5bac4d457da79a1273c5fc95abf..aca8f540b0520bdf10900dc91e66bea0ea39cc58 100644 (file)
@@ -441,6 +441,8 @@ static int iris_hfi_gen1_session_unset_buffers(struct iris_inst *inst, struct ir
                goto exit;
 
        ret = iris_wait_for_session_response(inst, false);
+       if (!ret)
+               ret = iris_destroy_internal_buffer(inst, buf);
 
 exit:
        kfree(pkt);