34 lines
1.5 KiB
Diff
34 lines
1.5 KiB
Diff
From 2fdd63feb95c6751526068c02f7512fd4bea6956 Mon Sep 17 00:00:00 2001
|
|
From: Daniel Kolesa <daniel@octaforge.org>
|
|
Date: Sat, 8 Aug 2020 20:05:29 +0200
|
|
Subject: [PATCH] dcn20_resource: use GFP_ATOMIC in validate_bandwidth_internal
|
|
|
|
GFP_KERNEL may and will sleep, and this is being executed in
|
|
a non-preemptible context; this will mess things up since it's
|
|
called inbetween DC_FP_START/END, and rescheduling will result
|
|
in the DC_FP_END later being called in a different context (or
|
|
just crashing if any floating point/vector registers/instructions
|
|
are used after the call is resumed in a different context).
|
|
|
|
Signed-off-by: Daniel Kolesa <daniel@octaforge.org>
|
|
---
|
|
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
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 2719cde..d37ede0 100644
|
|
--- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
|
|
+++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
|
|
@@ -3031,7 +3031,7 @@ static bool dcn20_validate_bandwidth_internal(struct dc *dc, struct dc_state *co
|
|
int vlevel = 0;
|
|
int pipe_split_from[MAX_PIPES];
|
|
int pipe_cnt = 0;
|
|
- display_e2e_pipe_params_st *pipes = kzalloc(dc->res_pool->pipe_count * sizeof(display_e2e_pipe_params_st), GFP_KERNEL);
|
|
+ display_e2e_pipe_params_st *pipes = kzalloc(dc->res_pool->pipe_count * sizeof(display_e2e_pipe_params_st), GFP_ATOMIC);
|
|
DC_LOGGER_INIT(dc->ctx->logger);
|
|
|
|
BW_VAL_TRACE_COUNT();
|
|
--
|
|
2.28.0
|
|
|