Commit 414606b9 authored by Hersen Wu's avatar Hersen Wu Committed by Guo Mengqi
Browse files

drm/amd/display: Add NULL pointer check for kzalloc

mainline inclusion
from mainline-v6.10-rc1
commit 8e65a1b7118acf6af96449e1e66b7adbc9396912
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAGWWS
CVE: CVE-2024-42122

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8e65a1b7118acf6af96449e1e66b7adbc9396912



--------------------------------

[Why & How]
Check return pointer of kzalloc before using it.

Reviewed-by: default avatarAlex Hung <alex.hung@amd.com>
Acked-by: default avatarWayne Lin <wayne.lin@amd.com>
Signed-off-by: default avatarHersen Wu <hersenxs.wu@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Conflicts:
	drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c
	drivers/gpu/drm/amd/display/dc/resource/dcn30/dcn30_resource.c
	drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c
	drivers/gpu/drm/amd/display/dc/resource/dcn314/dcn314_resource.c
	drivers/gpu/drm/amd/display/dc/resource/dcn315/dcn315_resource.c
	drivers/gpu/drm/amd/display/dc/resource/dcn316/dcn316_resource.c
	drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c
	drivers/gpu/drm/amd/display/dc/resource/dcn321/dcn321_resource.c
	drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c
	drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c
	drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c
[adjust context conflicts]
Signed-off-by: default avatarChen Jun <chenjun102@huawei.com>
parent 6b96457d
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -549,11 +549,19 @@ void dcn3_clk_mgr_construct(
	dce_clock_read_ss_info(clk_mgr);

	clk_mgr->base.bw_params = kzalloc(sizeof(*clk_mgr->base.bw_params), GFP_KERNEL);
	if (!clk_mgr->base.bw_params) {
		BREAK_TO_DEBUGGER();
		return;
	}

	/* need physical address of table to give to PMFW */
	clk_mgr->wm_range_table = dm_helpers_allocate_gpu_mem(clk_mgr->base.ctx,
			DC_MEM_ALLOC_TYPE_GART, sizeof(WatermarksExternal_t),
			&clk_mgr->wm_range_table_addr);
	if (!clk_mgr->wm_range_table) {
		BREAK_TO_DEBUGGER();
		return;
	}
}

void dcn3_clk_mgr_destroy(struct clk_mgr_internal *clk_mgr)
+3 −0
Original line number Diff line number Diff line
@@ -2373,6 +2373,9 @@ bool dcn30_validate_bandwidth(struct dc *dc,

	BW_VAL_TRACE_COUNT();

	if (!pipes)
		goto validate_fail;

	out = dcn30_internal_validate_bw(dc, context, pipes, &pipe_cnt, &vlevel, fast_validate);

	if (pipe_cnt == 0)