]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amd/display: prevent memory leak
authorNavid Emamdoost <navid.emamdoost@gmail.com>
Wed, 25 Sep 2019 04:23:56 +0000 (23:23 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Aug 2020 08:06:00 +0000 (10:06 +0200)
[ Upstream commit 104c307147ad379617472dd91a5bcb368d72bd6d ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c

index 3f76e6019546f029739bfd182036b37fac3b671d..5a2f29bd350823141ed2b0077315d2a487eca227 100644 (file)
@@ -1001,6 +1001,7 @@ struct resource_pool *dce100_create_resource_pool(
        if (construct(num_virtual_links, dc, pool))
                return &pool->base;
 
+       kfree(pool);
        BREAK_TO_DEBUGGER();
        return NULL;
 }
index e5e9e92521e91fab5afd921d245a575802a8b330..17d936c260d97d2b6baf8cadd662c232bafe667e 100644 (file)
@@ -1344,6 +1344,7 @@ struct resource_pool *dce110_create_resource_pool(
        if (construct(num_virtual_links, dc, pool, asic_id))
                return &pool->base;
 
+       kfree(pool);
        BREAK_TO_DEBUGGER();
        return NULL;
 }
index 288129343c77893f7d3db3011e3bfab835a75edc..71adab8bf31b1a246aae6c53ff9856b5b5cdf50c 100644 (file)
@@ -1287,6 +1287,7 @@ struct resource_pool *dce112_create_resource_pool(
        if (construct(num_virtual_links, dc, pool))
                return &pool->base;
 
+       kfree(pool);
        BREAK_TO_DEBUGGER();
        return NULL;
 }
index d43f37d99c7d9d2ed7bb0e37bfb58b91981914e6..f0f2ce6da82782b186a00da9c40930e0c00dff3a 100644 (file)
@@ -1076,6 +1076,7 @@ struct resource_pool *dce120_create_resource_pool(
        if (construct(num_virtual_links, dc, pool))
                return &pool->base;
 
+       kfree(pool);
        BREAK_TO_DEBUGGER();
        return NULL;
 }
index 6b44ed3697a4f4d5fafdc2bd9febede20e4cbae7..e6d55688114001550d5a5a21ef542c018e3f143d 100644 (file)
@@ -1361,6 +1361,7 @@ struct resource_pool *dcn10_create_resource_pool(
        if (construct(num_virtual_links, dc, pool))
                return &pool->base;
 
+       kfree(pool);
        BREAK_TO_DEBUGGER();
        return NULL;
 }