Skip to content

Commit 104c307

Browse files
Navidemalexdeucher
authored andcommitted
drm/amd/display: prevent memory leak
In dcn*_create_resource_pool the allocated memory should be released if construct pool fails. Reviewed-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent 1e94b43 commit 104c307

File tree

5 files changed

+5
-0
lines changed

5 files changed

+5
-0
lines changed

Diff for: drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c

+1
Original file line numberDiff line numberDiff line change
@@ -1091,6 +1091,7 @@ struct resource_pool *dce100_create_resource_pool(
10911091
if (construct(num_virtual_links, dc, pool))
10921092
return &pool->base;
10931093

1094+
kfree(pool);
10941095
BREAK_TO_DEBUGGER();
10951096
return NULL;
10961097
}

Diff for: drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c

+1
Original file line numberDiff line numberDiff line change
@@ -1462,6 +1462,7 @@ struct resource_pool *dce110_create_resource_pool(
14621462
if (construct(num_virtual_links, dc, pool, asic_id))
14631463
return &pool->base;
14641464

1465+
kfree(pool);
14651466
BREAK_TO_DEBUGGER();
14661467
return NULL;
14671468
}

Diff for: drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c

+1
Original file line numberDiff line numberDiff line change
@@ -1342,6 +1342,7 @@ struct resource_pool *dce112_create_resource_pool(
13421342
if (construct(num_virtual_links, dc, pool))
13431343
return &pool->base;
13441344

1345+
kfree(pool);
13451346
BREAK_TO_DEBUGGER();
13461347
return NULL;
13471348
}

Diff for: drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c

+1
Original file line numberDiff line numberDiff line change
@@ -1208,6 +1208,7 @@ struct resource_pool *dce120_create_resource_pool(
12081208
if (construct(num_virtual_links, dc, pool))
12091209
return &pool->base;
12101210

1211+
kfree(pool);
12111212
BREAK_TO_DEBUGGER();
12121213
return NULL;
12131214
}

Diff for: drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c

+1
Original file line numberDiff line numberDiff line change
@@ -1570,6 +1570,7 @@ struct resource_pool *dcn10_create_resource_pool(
15701570
if (construct(init_data->num_virtual_links, dc, pool))
15711571
return &pool->base;
15721572

1573+
kfree(pool);
15731574
BREAK_TO_DEBUGGER();
15741575
return NULL;
15751576
}

0 commit comments

Comments
 (0)