[PATCH] drm/amd/display: fix kernel_fpu_begin/_end() warnings

Harry Wentland hwentlan at amd.com
Mon Dec 23 15:21:02 UTC 2019


On 2019-12-22 10:22 p.m., Xiaojie Yuan wrote:
> kernel_fpu_begin/_end() are already called inside dcn20_resource_construct,
> and calling kernel_fpu_begin/_end() recursively triggers WARN_ON() when
> CONFIG_X86_DEBUG_FPU is enabled.
> 
> [  107.060434] WARNING: CPU: 6 PID: 1370 at arch/x86/kernel/fpu/core.c:90 kernel_fpu_begin+0xbd/0xe0
> <snip>
> [  107.268197] Call Trace:
> [  107.270751]  dcn20_patch_bounding_box+0x17/0x100 [amdgpu]
> [  107.276204]  init_soc_bounding_box+0x1b3/0x5f0 [amdgpu]
> [  107.281536]  ? _cond_resched+0x19/0x30
> [  107.285307]  dcn20_resource_construct+0x3a9/0xa90 [amdgpu]
> [  107.290957]  ? dcn20_resource_construct+0x3a9/0xa90 [amdgpu]
> [  107.296621]  ? __alloc_pages_nodemask+0x16a/0x330
> [  107.301476]  ? _cond_resched+0x19/0x30
> [  107.305284]  ? kmem_cache_alloc_trace+0x197/0x230
> [  107.310063]  ? _cond_resched+0x19/0x30
> [  107.313783]  ? kmem_cache_alloc_trace+0x197/0x230
> [  107.318691]  dcn20_create_resource_pool+0x42/0x70 [amdgpu]
> [  107.324315]  dc_create_resource_pool+0x12d/0x170 [amdgpu]
> [  107.329851]  dc_create+0x1b8/0x6a0 [amdgpu]
> [  107.334013]  ? kmem_cache_alloc_trace+0x1e2/0x230
> [  107.338832]  amdgpu_dm_init+0x13e/0x1c0 [amdgpu]
> <snip>
> 
> Signed-off-by: Xiaojie Yuan <xiaojie.yuan at amd.com>

Reviewed-by: Harry Wentland <harry.wentland at amd.com>

Harry

> ---
>  drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
> index d72e921fffa0..9f346ffb6e78 100644
> --- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
> +++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
> @@ -3225,7 +3225,6 @@ void dcn20_update_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_s
>  
>  void dcn20_patch_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_st *bb)
>  {
> -	DC_FP_START();
>  	if ((int)(bb->sr_exit_time_us * 1000) != dc->bb_overrides.sr_exit_time_ns
>  			&& dc->bb_overrides.sr_exit_time_ns) {
>  		bb->sr_exit_time_us = dc->bb_overrides.sr_exit_time_ns / 1000.0;
> @@ -3249,7 +3248,6 @@ void dcn20_patch_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_st
>  		bb->dram_clock_change_latency_us =
>  				dc->bb_overrides.dram_clock_change_latency_ns / 1000.0;
>  	}
> -	DC_FP_END();
>  }
>  
>  static struct _vcs_dpi_soc_bounding_box_st *get_asic_rev_soc_bb(
> 


More information about the amd-gfx mailing list