On Sat, Aug 8, 2020 at 4:51 PM Daniel Kolesa <daniel@xxxxxxxxxxxxx> wrote: > > 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@xxxxxxxxxxxxx> We should probably find a way to pre-allocate this, but in the meantime, I'll apply the patch. Thanks! Alex > --- > 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 991eddd10952..c31d1f30e505 100644 > --- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c > +++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c > @@ -3141,7 +3141,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 > > _______________________________________________ > amd-gfx mailing list > amd-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx