Friendly ping, Ben. I see that in `nouveau_fence_done()` there is a check on `chan` not being NULL prior to passing it to `nouveau_fence_update()`. Would something similar be needed here? Pierre On 2018-11-15 — 12:14, YueHaibing wrote: > Fixes gcc '-Wunused-but-set-variable' warning: > > drivers/gpu/drm/nouveau/nouveau_fence.c: In function 'nouveau_fence_wait_uevent_handler': > drivers/gpu/drm/nouveau/nouveau_fence.c:156:27: warning: > variable 'chan' set but not used [-Wunused-but-set-variable] > > nouveau_fence_update should use rcu protected 'chan' > rather than 'fence->channel' > > Fixes: 0ec5f02f0e2c ("drm/nouveau: prevent stale fence->channel pointers, and protect with rcu") > Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx> > --- > drivers/gpu/drm/nouveau/nouveau_fence.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c > index d4964f3..91286d0 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_fence.c > +++ b/drivers/gpu/drm/nouveau/nouveau_fence.c > @@ -157,7 +157,7 @@ > > fence = list_entry(fctx->pending.next, typeof(*fence), head); > chan = rcu_dereference_protected(fence->channel, lockdep_is_held(&fctx->lock)); > - if (nouveau_fence_update(fence->channel, fctx)) > + if (nouveau_fence_update(chan, fctx)) > ret = NVIF_NOTIFY_DROP; > } > spin_unlock_irqrestore(&fctx->lock, flags); > > > > _______________________________________________ > Nouveau mailing list > Nouveau@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/nouveau