drm/amd/display: Deallocate DML 2.1 Memory Allocation

[Why]
DML 2.1 allocates two types of memory in its ctx structure but does not
destroy them, causing memory leak whenever DML 2.1 instance is created
and destroyed.

[How]
Deallocate two instances of allocated memory whenever DML 2.1 is
destroyed.

Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Chris Park <chris.park@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Chris Park 2024-04-17 15:27:01 -04:00 committed by Alex Deucher
parent c6bce984b8
commit ccb167104a
3 changed files with 9 additions and 0 deletions

View File

@ -107,6 +107,12 @@ bool dml21_create(const struct dc *in_dc, struct dml2_context **dml_ctx, const s
return true;
}
void dml21_destroy(struct dml2_context *dml2)
{
kfree(dml2->v21.dml_init.dml2_instance);
kfree(dml2->v21.mode_programming.programming);
}
static void dml21_calculate_rq_and_dlg_params(const struct dc *dc, struct dc_state *context, struct resource_context *out_new_hw_state,
struct dml2_context *in_ctx, unsigned int pipe_cnt)
{

View File

@ -27,6 +27,7 @@ struct dml2_context;
* Return: True if dml2 is successfully created, false otherwise.
*/
bool dml21_create(const struct dc *in_dc, struct dml2_context **dml_ctx, const struct dml2_configuration_options *config);
void dml21_destroy(struct dml2_context *dml2);
void dml21_copy(struct dml2_context *dst_dml_ctx,
struct dml2_context *src_dml_ctx);
bool dml21_create_copy(struct dml2_context **dst_dml_ctx,

View File

@ -782,6 +782,8 @@ void dml2_destroy(struct dml2_context *dml2)
if (!dml2)
return;
if (dml2->architecture == dml2_architecture_21)
dml21_destroy(dml2);
kfree(dml2);
}