On 4/29/25 09:04, Alex Deucher wrote:
On Mon, Apr 28, 2025 at 9:57 AM Ray Wu <ray...@amd.com> wrote:

From: Alex Hung <alex.h...@amd.com>

[WHY & HOW]
Remove the unnecessary DC_FP_START/DC_FP_END pair to reduce time in
preempt_disable. It also fixes "BUG: sleeping function called from
invalid context" error messages because of calling kzalloc with
GFP_KERNEL which can sleep.

Is this safe?  If this function uses FP or calls a function which uses
FP, removing these will lead to register corruption.

I checked dcn32_resource_construct again and I did not find any FP or functions uses FP, and Aurabindo helped double check.

I also checked other dnc*_resource_construct (like 321, 35, 351, 36) and they don't use DC_FP_START/DC_FP_END pair either.

So it should be safe to remove this pair.


Alex


Reviewed-by: Aurabindo Pillai <aurabindo.pil...@amd.com>
Signed-off-by: Alex Hung <alex.h...@amd.com>
Signed-off-by: Ray Wu <ray...@amd.com>
---
  .../gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c  | 6 ------
  1 file changed, 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c 
b/drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c
index 2a59cc61ed8c..944650cb13de 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c
@@ -2114,8 +2114,6 @@ static bool dcn32_resource_construct(
  #define REG_STRUCT dccg_regs
         dccg_regs_init();

-       DC_FP_START();
-
         ctx->dc_bios->regs = &bios_regs;

         pool->base.res_cap = &res_cap_dcn32;
@@ -2501,14 +2499,10 @@ static bool dcn32_resource_construct(
         if (ASICREV_IS_GC_11_0_3(dc->ctx->asic_id.hw_internal_rev) && 
(dc->config.sdpif_request_limit_words_per_umc == 0))
                 dc->config.sdpif_request_limit_words_per_umc = 16;

-       DC_FP_END();
-
         return true;

  create_fail:

-       DC_FP_END();
-
         dcn32_resource_destruct(pool);

         return false;
--
2.43.0


Reply via email to