search for: prev_fenc

Displaying 4 results from an estimated 4 matches for "prev_fenc".

Did you mean: prev_fence
2010 Feb 01
4
[PATCH 1/3] Introduce nouveau_bo_wait for waiting on a BO with a GPU channel
...nouveau_bo_wait(struct ttm_buffer_object *bo, struct nouveau_channel *chan) +{ + int ret = 0; + + if (likely(!bo->sync_obj)) + return 0; + + spin_lock(&bo->lock); + if (chan) { + struct nouveau_fence *new_fence; + struct nouveau_channel *waited_chan; + + do { + struct nouveau_fence *prev_fence; + prev_fence = bo->sync_obj; + + waited_chan = nouveau_fence_channel(prev_fence); + if (likely(!waited_chan || waited_chan == chan)) + break; + + nouveau_fence_ref(prev_fence); + + ret = ttm_bo_wait(bo, false, false, true); + if (!ret) + goto unref_break; + + if (unlikely(p...
2010 Feb 09
2
[PATCH 1/3] Introduce nouveau_bo_wait for waiting on a BO with a GPU channel (v2)
...nouveau_bo_wait(struct ttm_buffer_object *bo, struct nouveau_channel *chan) +{ + int ret = 0; + + if (likely(!bo->sync_obj)) + return 0; + + spin_lock(&bo->lock); + if (chan) { + struct nouveau_fence *new_fence; + struct nouveau_channel *waited_chan; + + do { + struct nouveau_fence *prev_fence; + prev_fence = bo->sync_obj; + + waited_chan = nouveau_fence_channel(prev_fence); + if (likely(!waited_chan || waited_chan == chan)) + break; + + nouveau_fence_ref(prev_fence); + + ret = ttm_bo_wait(bo, false, false, true); + if (!ret) + goto unref_break; + + if (unlikely(p...
2010 Feb 19
2
[PATCH 1/2] drm/nouveau: Unmap pushbuf BOs when we're done with them.
...ouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index fb6d87b..ec6da5c 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -243,6 +243,8 @@ validate_fini_list(struct list_head *list, struct nouveau_fence *fence) nouveau_fence_unref((void *)&prev_fence); } + ttm_bo_kunmap(&nvbo->kmap); + list_del(&nvbo->entry); nvbo->reserved_by = NULL; ttm_bo_unreserve(&nvbo->bo); -- 1.6.4.4
2009 Sep 07
1
[PATCH] drm/nouveau: fix ref leak in nouveau_gem_pushbuf_validate()
...struct drm_file *file_priv, struct drm_nouveau_gem_pushbuf_bo *pbbo, @@ -279,7 +313,7 @@ nouveau_gem_pushbuf_validate(struct nouveau_channel *chan, struct drm_nouveau_gem_pushbuf_bo __user *user_pbbos = (void __force __user *)(uintptr_t)user_buffers; struct nouveau_fence *prev_fence; - struct nouveau_bo *nvbo; + struct nouveau_bo *nvbo = NULL; struct list_head *entry, *tmp; int ret = -EINVAL; int i; @@ -296,28 +330,15 @@ retry: } for (i = 0, b = pbbo; i < nr_buffers; i++, b++) { - struct drm_gem_object *gem; - - gem = drm_gem_object_lookup(dev, file_priv, b-&...