From: Maarten Lankhorst Date: Tue, 15 Jan 2013 13:54:22 +0000 (+0100) Subject: drm/nouveau: increase reservation sequence every retry X-Git-Tag: v3.9-rc1~83^2~21^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=979ee290ff0a543352243145dc3654af5a856ab8;p=profile%2Fivi%2Fkernel-x86-ivi.git drm/nouveau: increase reservation sequence every retry This is temporary until the fence framework can be used. With the lru/reservation atomicity removal it is possible to see your old sequence number and the buffer being reserved, leading to erroneously reporting -EDEADLK. Workaround it by bumping the sequence number every retry. Signed-off-by: Maarten Lankhorst --- diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 8bf695c..9fcfcb2 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -321,8 +321,8 @@ validate_init(struct nouveau_channel *chan, struct drm_file *file_priv, int trycnt = 0; int ret, i; - sequence = atomic_add_return(1, &drm->ttm.validate_sequence); retry: + sequence = atomic_add_return(1, &drm->ttm.validate_sequence); if (++trycnt > 100000) { NV_ERROR(drm, "%s failed and gave up.\n", __func__); return -EINVAL;