linux/drivers/gpu/drm/amd/display/dc/resource
Mikhail Gavrilov 183182235f drm/amd/display: Wrap DCN32 phantom-plane allocation in DC_RUN_WITH_PREEMPTION_ENABLED
[Why]
dcn32_validate_bandwidth() wraps dcn32_internal_validate_bw() with
DC_FP_START()/DC_FP_END(). In x86 non-RT, DC_FP_START takes fpregs_lock(),
which disables local softirqs.

The DML1 path through dcn32_enable_phantom_plane() calls kvzalloc() to
allocate ~335 KiB for dc_plane_state. This triggers the vmalloc path,
which calls BUG_ON(in_interrupt()) because it's invoked within the
FPU-enabled (softirq disabled) region, leading to a kernel crash.

[How]
Wrap the dc_state_create_phantom_plane() call with the
DC_RUN_WITH_PREEMPTION_ENABLED() macro to allow preemption during
this memory allocation.

Fixes: 235c676342 ("drm/amd/display: add DCN32/321 specific files for Display Core")
Closes: https://gitlab.freedesktop.org/drm/amd/-/work_items/4470
Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
Signed-off-by: James Lin <pinglei.lin@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 885ccbef7b94a8b38f69c4211c679021aa27ad11)
Cc: stable@vger.kernel.org
2026-05-11 17:53:31 -04:00
..
dce60 drm/amd/display: Allow constructing DCE6 link encoder without DDC 2026-04-29 10:41:28 -04:00
dce80 drm/amd/display: Allow constructing DCE8 link encoder without DDC 2026-04-29 10:41:34 -04:00
dce100 drm/amd/display: Fixed Silence complier warnings in dc 2026-03-30 15:12:15 -04:00
dce110 drm/amd/display: Fixed Silence complier warnings in dc 2026-03-30 15:12:15 -04:00
dce112 drm/amd/display: Fixed Silence complier warnings in dc 2026-03-30 15:12:15 -04:00
dce120 drm/amd/display: Fixed Silence complier warnings in dc 2026-03-30 15:12:15 -04:00
dcn10 Linux 7.0-rc7 2026-04-07 12:36:31 +02:00
dcn20 Linux 7.0-rc7 2026-04-07 12:36:31 +02:00
dcn21 drm/amd/display: Fix fpu guard warning 2026-04-17 15:24:45 -04:00
dcn30 Linux 7.0-rc7 2026-04-07 12:36:31 +02:00
dcn31 drm/amd/display: Fix fpu guard warning 2026-04-17 15:24:45 -04:00
dcn32 drm/amd/display: Wrap DCN32 phantom-plane allocation in DC_RUN_WITH_PREEMPTION_ENABLED 2026-05-11 17:53:31 -04:00
dcn35 Linux 7.0-rc7 2026-04-07 12:36:31 +02:00
dcn36 Linux 7.0-rc7 2026-04-07 12:36:31 +02:00
dcn42 drm/amd/display: Fixed Silence complier warnings in dc 2026-03-30 15:12:15 -04:00
dcn201 Linux 7.0-rc7 2026-04-07 12:36:31 +02:00
dcn301 Linux 7.0-rc7 2026-04-07 12:36:31 +02:00
dcn302 Linux 7.0-rc7 2026-04-07 12:36:31 +02:00
dcn303 Linux 7.0-rc7 2026-04-07 12:36:31 +02:00
dcn314 Linux 7.0-rc7 2026-04-07 12:36:31 +02:00
dcn315 drm/amd/display: Fix fpu guard warning 2026-04-17 15:24:45 -04:00
dcn316 drm/amd/display: Fix fpu guard warning 2026-04-17 15:24:45 -04:00
dcn321 Linux 7.0-rc7 2026-04-07 12:36:31 +02:00
dcn351 Linux 7.0-rc7 2026-04-07 12:36:31 +02:00
dcn401 drm/amd/display: Move FPU Guards From DML To DC - Part 1 2026-03-30 15:06:10 -04:00
Makefile drm/amd/display: Enable dcn42 DC 2026-02-23 14:28:33 -05:00