Displaying 8 results from an estimated 8 matches for "nouveau_vm_put".
2013 Jul 29
0
[PATCH] drm/nouveau: protect vm refcount with mutex
...h_common+0x87/0xaf
[<ffffffff81059e5a>] warn_slowpath_null+0x15/0x17
[<ffffffffa02d6109>] nouveau_mm_fini+0x4f/0x56 [nouveau]
[<ffffffffa02f5703>] nouveau_vm_ref+0x154/0x180 [nouveau]
[<ffffffffa02d5cdb>] ? nouveau_mm_free+0x85/0x116 [nouveau]
[<ffffffffa02f57c9>] nouveau_vm_put+0x9a/0xb0 [nouveau]
[<ffffffffa033462d>] ? nouveau_gem_info+0x9d/0x9d [nouveau]
[<ffffffffa0334646>] nouveau_gem_object_delete+0x19/0x28 [nouveau]
[<ffffffffa032fc90>] nouveau_fence_work+0xc9/0x102 [nouveau]
[<ffffffffa0334d59>] nouveau_gem_object_close+0x103/0x182 [nouv...
2012 Nov 21
2
[PATCH] drm/nouveau: fix takedown in move_notify
..._ntfy(struct ttm_buffer_object *bo, struct ttm_mem_reg *new_mem)
if (bo->destroy != nouveau_bo_del_ttm)
return;
+ if (!new_mem) {
+ while (!list_empty(&nvbo->vma_list)) {
+ vma = list_first_entry(&nvbo->vma_list, struct nouveau_vma, head);
+
+ nouveau_vm_unmap(vma);
+ nouveau_vm_put(vma);
+ list_del(&vma->head);
+ }
+ return;
+ }
+
list_for_each_entry(vma, &nvbo->vma_list, head) {
- if (new_mem && new_mem->mem_type == TTM_PL_VRAM) {
+ if (new_mem->mem_type == TTM_PL_VRAM) {
nouveau_vm_map(vma, new_mem->mm_node);
- } else
- if (new_m...
2012 Oct 12
0
[PATCH 2/3] drm/nouveau: add reservation to nouveau_bo_vma_del
...ttm_bo_reserve(&nvbo->bo, false, false, false, 0);
spin_lock(&nvbo->bo.bdev->fence_lock);
ttm_bo_wait(&nvbo->bo, false, false, false);
spin_unlock(&nvbo->bo.bdev->fence_lock);
+ ttm_bo_unreserve(&nvbo->bo);
+ nouveau_vm_unmap(vma);
+ }
+
+ nouveau_vm_put(vma);
+ list_del(&vma->head);
+ }
+}
+
+void
+nouveau_bo_vma_del_reserved(struct nouveau_bo *nvbo, struct nouveau_vma *vma)
+{
+ if (vma->node) {
+ if (nvbo->bo.mem.mem_type != TTM_PL_SYSTEM) {
+ ttm_bo_wait(&nvbo->bo, false, false, false);
nouveau_vm_unmap(vma);
}...
2014 May 14
0
[RFC PATCH v1 12/16] drm/ttm: flip the switch, and convert to dma_fence
...nce = nouveau_fence_ref(nvbo->bo.sync_obj);
- }
+ if (mapped)
+ fence = reservation_object_get_excl(nvbo->bo.resv);
if (fence) {
nouveau_fence_work(fence, nouveau_gem_object_delete, vma);
@@ -116,7 +115,6 @@ nouveau_gem_object_unmap(struct nouveau_bo *nvbo, struct nouveau_vma *vma)
nouveau_vm_put(vma);
kfree(vma);
}
- nouveau_fence_unref(&fence);
}
void
@@ -876,8 +874,12 @@ nouveau_gem_ioctl_cpu_prep(struct drm_device *dev, void *data,
ret = ttm_bo_reserve(&nvbo->bo, true, false, false, 0);
if (!ret) {
ret = ttm_bo_wait(&nvbo->bo, true, true, true);
- if (...
2014 Jul 09
0
[PATCH 13/17] drm/ttm: flip the switch, and convert to dma_fence
...nce = nouveau_fence_ref(nvbo->bo.sync_obj);
- }
+ if (mapped)
+ fence = reservation_object_get_excl(nvbo->bo.resv);
if (fence) {
nouveau_fence_work(fence, nouveau_gem_object_delete, vma);
@@ -116,7 +115,6 @@ nouveau_gem_object_unmap(struct nouveau_bo *nvbo, struct nouveau_vma *vma)
nouveau_vm_put(vma);
kfree(vma);
}
- nouveau_fence_unref(&fence);
}
void
@@ -876,8 +874,12 @@ nouveau_gem_ioctl_cpu_prep(struct drm_device *dev, void *data,
ret = ttm_bo_reserve(&nvbo->bo, true, false, false, 0);
if (!ret) {
ret = ttm_bo_wait(&nvbo->bo, true, true, true);
- if (...
2014 May 14
17
[RFC PATCH v1 00/16] Convert all ttm drivers to use the new reservation interface
This series depends on the previously posted reservation api patches.
2 of them are not yet in for-next-fences branch of
git://git.linaro.org/people/sumit.semwal/linux-3.x.git
The missing patches are still in my vmwgfx_wip branch at
git://people.freedesktop.org/~mlankhorst/linux
All ttm drivers are converted to the fence api, fence_lock is removed
and rcu is used in its place.
qxl is the first
2014 Jul 31
19
[PATCH 01/19] fence: add debugging lines to fence_is_signaled for the callback
fence_is_signaled callback should support being run in
atomic context, but not in irq context.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com>
---
include/linux/fence.h | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/include/linux/fence.h b/include/linux/fence.h
index d174585b874b..c1a4519ba2f5 100644
---
2014 Jul 09
22
[PATCH 00/17] Convert TTM to the new fence interface.
This series applies on top of the driver-core-next branch of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
Before converting ttm to the new fence interface I had to fix some
drivers to require a reservation before poking with fence_obj.
After flipping the switch RCU becomes available instead, and
the extra reservations can be dropped again. :-)
I've done at least basic