[Mesa-dev] [PATCH 8/9] Revert "radeonsi: fix potential use-after-free of debug callbacks"

Nicolai Hähnle nhaehnle at gmail.com
Wed Apr 18 10:11:29 UTC 2018


How can this possibly deadlock? Is this during process exit, like in the 
case where we got a deadlock when LLVM called abort()?

The rest of the series is

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>


On 17.04.2018 02:52, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
> 
> This reverts commit b650fc09c3a35ca624aad5fe4b5c34867708f116.
> 
> There is a 100%-reproducible deadlock if I increase the number of compiler
> queues.
> 
> Also:
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105379
> 
> Cc: 18.0 <mesa-stable at lists.freedesktop.org>
> ---
>   src/gallium/drivers/radeonsi/si_pipe.c | 4 ----
>   1 file changed, 4 deletions(-)
> 
> diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
> index 490a090da87..f1f1e3ad890 100644
> --- a/src/gallium/drivers/radeonsi/si_pipe.c
> +++ b/src/gallium/drivers/radeonsi/si_pipe.c
> @@ -353,24 +353,20 @@ static void si_emit_string_marker(struct pipe_context *ctx,
>   	dd_parse_apitrace_marker(string, len, &sctx->apitrace_call_number);
>   
>   	if (sctx->log)
>   		u_log_printf(sctx->log, "\nString marker: %*s\n", len, string);
>   }
>   
>   static void si_set_debug_callback(struct pipe_context *ctx,
>   				  const struct pipe_debug_callback *cb)
>   {
>   	struct si_context *sctx = (struct si_context *)ctx;
> -	struct si_screen *screen = sctx->screen;
> -
> -	util_queue_finish(&screen->shader_compiler_queue);
> -	util_queue_finish(&screen->shader_compiler_queue_low_priority);
>   
>   	if (cb)
>   		sctx->debug = *cb;
>   	else
>   		memset(&sctx->debug, 0, sizeof(sctx->debug));
>   }
>   
>   static void si_set_log_context(struct pipe_context *ctx,
>   			       struct u_log_context *log)
>   {
> 


-- 
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.


More information about the mesa-dev mailing list