mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
drm/amd/display: Check null-initialized variables
[ Upstream commit 367cd9ceba1933b63bc1d87d967baf6d9fd241d2 ] [WHAT & HOW] drr_timing and subvp_pipe are initialized to null and they are not always assigned new values. It is necessary to check for null before dereferencing. This fixes 2 FORWARD_NULL issues reported by Coverity. Reviewed-by: Nevenko Stupar <nevenko.stupar@amd.com> Reviewed-by: Rodrigo Siqueira <rodrigo.siqueira@amd.com> Signed-off-by: Jerry Zuo <jerry.zuo@amd.com> Signed-off-by: Alex Hung <alex.hung@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> [Xiangyu: BP to fix CVE: CVE-2024-49898, Minor conflict resolution] Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
e087c9738e
commit
26d262b79a
@@ -900,8 +900,9 @@ static bool subvp_drr_schedulable(struct dc *dc, struct dc_state *context, struc
|
|||||||
* for VBLANK: (VACTIVE region of the SubVP pipe can fit the MALL prefetch, VBLANK frame time,
|
* for VBLANK: (VACTIVE region of the SubVP pipe can fit the MALL prefetch, VBLANK frame time,
|
||||||
* and the max of (VBLANK blanking time, MALL region)).
|
* and the max of (VBLANK blanking time, MALL region)).
|
||||||
*/
|
*/
|
||||||
if (stretched_drr_us < (1 / (double)drr_timing->min_refresh_in_uhz) * 1000000 * 1000000 &&
|
if (drr_timing &&
|
||||||
subvp_active_us - prefetch_us - stretched_drr_us - max_vblank_mallregion > 0)
|
stretched_drr_us < (1 / (double)drr_timing->min_refresh_in_uhz) * 1000000 * 1000000 &&
|
||||||
|
subvp_active_us - prefetch_us - stretched_drr_us - max_vblank_mallregion > 0)
|
||||||
schedulable = true;
|
schedulable = true;
|
||||||
|
|
||||||
return schedulable;
|
return schedulable;
|
||||||
@@ -966,7 +967,7 @@ static bool subvp_vblank_schedulable(struct dc *dc, struct dc_state *context)
|
|||||||
if (found && context->res_ctx.pipe_ctx[vblank_index].stream->ignore_msa_timing_param) {
|
if (found && context->res_ctx.pipe_ctx[vblank_index].stream->ignore_msa_timing_param) {
|
||||||
// SUBVP + DRR case
|
// SUBVP + DRR case
|
||||||
schedulable = subvp_drr_schedulable(dc, context, &context->res_ctx.pipe_ctx[vblank_index]);
|
schedulable = subvp_drr_schedulable(dc, context, &context->res_ctx.pipe_ctx[vblank_index]);
|
||||||
} else if (found) {
|
} else if (found && subvp_pipe) {
|
||||||
main_timing = &subvp_pipe->stream->timing;
|
main_timing = &subvp_pipe->stream->timing;
|
||||||
phantom_timing = &subvp_pipe->stream->mall_stream_config.paired_stream->timing;
|
phantom_timing = &subvp_pipe->stream->mall_stream_config.paired_stream->timing;
|
||||||
vblank_timing = &context->res_ctx.pipe_ctx[vblank_index].stream->timing;
|
vblank_timing = &context->res_ctx.pipe_ctx[vblank_index].stream->timing;
|
||||||
|
|||||||
Reference in New Issue
Block a user