drm/amd/display: Add NULL pointer check for kzalloc
[Why & How] Check return pointer of kzalloc before using it. Reviewed-by: Alex Hung <alex.hung@amd.com> Acked-by: Wayne Lin <wayne.lin@amd.com> Signed-off-by: Hersen Wu <hersenxs.wu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
b528cac6de
commit
8e65a1b711
@ -560,11 +560,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)
|
||||
|
@ -1199,11 +1199,19 @@ void dcn32_clk_mgr_construct(
|
||||
clk_mgr->smu_present = false;
|
||||
|
||||
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 dcn32_clk_mgr_destroy(struct clk_mgr_internal *clk_mgr)
|
||||
|
@ -2050,6 +2050,9 @@ bool dcn30_validate_bandwidth(struct dc *dc,
|
||||
|
||||
BW_VAL_TRACE_COUNT();
|
||||
|
||||
if (!pipes)
|
||||
goto validate_fail;
|
||||
|
||||
DC_FP_START();
|
||||
out = dcn30_internal_validate_bw(dc, context, pipes, &pipe_cnt, &vlevel, fast_validate, true);
|
||||
DC_FP_END();
|
||||
|
@ -1310,6 +1310,8 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
|
||||
|
||||
/* allocate HPO link encoder */
|
||||
hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
|
||||
if (!hpo_dp_enc31)
|
||||
return NULL; /* out of memory */
|
||||
|
||||
hpo_dp_link_encoder31_construct(hpo_dp_enc31, ctx, inst,
|
||||
&hpo_dp_link_enc_regs[inst],
|
||||
@ -1766,6 +1768,9 @@ bool dcn31_validate_bandwidth(struct dc *dc,
|
||||
|
||||
BW_VAL_TRACE_COUNT();
|
||||
|
||||
if (!pipes)
|
||||
goto validate_fail;
|
||||
|
||||
DC_FP_START();
|
||||
out = dcn30_internal_validate_bw(dc, context, pipes, &pipe_cnt, &vlevel, fast_validate, true);
|
||||
DC_FP_END();
|
||||
|
@ -1367,6 +1367,8 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
|
||||
|
||||
/* allocate HPO link encoder */
|
||||
hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
|
||||
if (!hpo_dp_enc31)
|
||||
return NULL; /* out of memory */
|
||||
|
||||
hpo_dp_link_encoder31_construct(hpo_dp_enc31, ctx, inst,
|
||||
&hpo_dp_link_enc_regs[inst],
|
||||
@ -1727,6 +1729,9 @@ bool dcn314_validate_bandwidth(struct dc *dc,
|
||||
|
||||
BW_VAL_TRACE_COUNT();
|
||||
|
||||
if (!pipes)
|
||||
goto validate_fail;
|
||||
|
||||
if (filter_modes_for_single_channel_workaround(dc, context))
|
||||
goto validate_fail;
|
||||
|
||||
|
@ -1309,6 +1309,8 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
|
||||
|
||||
/* allocate HPO link encoder */
|
||||
hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
|
||||
if (!hpo_dp_enc31)
|
||||
return NULL; /* out of memory */
|
||||
|
||||
hpo_dp_link_encoder31_construct(hpo_dp_enc31, ctx, inst,
|
||||
&hpo_dp_link_enc_regs[inst],
|
||||
|
@ -1305,6 +1305,8 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
|
||||
|
||||
/* allocate HPO link encoder */
|
||||
hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
|
||||
if (!hpo_dp_enc31)
|
||||
return NULL; /* out of memory */
|
||||
|
||||
hpo_dp_link_encoder31_construct(hpo_dp_enc31, ctx, inst,
|
||||
&hpo_dp_link_enc_regs[inst],
|
||||
|
@ -1304,6 +1304,8 @@ static struct hpo_dp_link_encoder *dcn32_hpo_dp_link_encoder_create(
|
||||
|
||||
/* allocate HPO link encoder */
|
||||
hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
|
||||
if (!hpo_dp_enc31)
|
||||
return NULL; /* out of memory */
|
||||
|
||||
#undef REG_STRUCT
|
||||
#define REG_STRUCT hpo_dp_link_enc_regs
|
||||
@ -1751,6 +1753,9 @@ static bool dml1_validate(struct dc *dc, struct dc_state *context, bool fast_val
|
||||
|
||||
BW_VAL_TRACE_COUNT();
|
||||
|
||||
if (!pipes)
|
||||
goto validate_fail;
|
||||
|
||||
DC_FP_START();
|
||||
out = dcn32_internal_validate_bw(dc, context, pipes, &pipe_cnt, &vlevel, fast_validate);
|
||||
DC_FP_END();
|
||||
|
@ -1288,6 +1288,8 @@ static struct hpo_dp_link_encoder *dcn321_hpo_dp_link_encoder_create(
|
||||
|
||||
/* allocate HPO link encoder */
|
||||
hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
|
||||
if (!hpo_dp_enc31)
|
||||
return NULL; /* out of memory */
|
||||
|
||||
#undef REG_STRUCT
|
||||
#define REG_STRUCT hpo_dp_link_enc_regs
|
||||
|
@ -1368,6 +1368,8 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
|
||||
|
||||
/* allocate HPO link encoder */
|
||||
hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
|
||||
if (!hpo_dp_enc31)
|
||||
return NULL; /* out of memory */
|
||||
|
||||
#undef REG_STRUCT
|
||||
#define REG_STRUCT hpo_dp_link_enc_regs
|
||||
|
@ -1348,6 +1348,8 @@ static struct hpo_dp_link_encoder *dcn31_hpo_dp_link_encoder_create(
|
||||
|
||||
/* allocate HPO link encoder */
|
||||
hpo_dp_enc31 = kzalloc(sizeof(struct dcn31_hpo_dp_link_encoder), GFP_KERNEL);
|
||||
if (!hpo_dp_enc31)
|
||||
return NULL; /* out of memory */
|
||||
|
||||
#undef REG_STRUCT
|
||||
#define REG_STRUCT hpo_dp_link_enc_regs
|
||||
|
Loading…
x
Reference in New Issue
Block a user