Le 23/04/2012 00:18, Marcin Slusarz a ?crit :
> Signed-off-by: Marcin Slusarz<marcin.slusarz at gmail.com>
> ---
>   drivers/gpu/drm/nouveau/nv50_graph.c |    5 +++++
>   1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/gpu/drm/nouveau/nv50_graph.c 
> b/drivers/gpu/drm/nouveau/nv50_graph.c
> index 6899547..a61853f 100644
> --- a/drivers/gpu/drm/nouveau/nv50_graph.c
> +++ b/drivers/gpu/drm/nouveau/nv50_graph.c
> @@ -435,6 +435,11 @@ nv84_graph_tlb_flush(struct drm_device *dev, int engine)
>                       if ((tmp&  7) == 1)
>                               idle = false;
>               }
> +
> +             if (fatal_signal_pending(current)) {
> +                     ret = -ERESTARTSYS;
> +                     break;
> +             }
>       } while (!idle&&  !(timeout = ptimer->read(dev) - start>  2000000000));
>
>       if (timeout) {
Good, but who should send the kill signal in the first place?

Shouldn't nouveau drm terminate the process(es) associated with the 
channel that generated the lockup ?

Can you provide more info on how the lockup recovery works?

Thanks in advance,
Martin

Reply via email to