search for: nouveau_gem_object_del

Displaying 20 results from an estimated 35 matches for "nouveau_gem_object_del".

2020 Aug 13
0
[PATCH 09/20] drm/nouveau: Introduce GEM object functions
...in, - .gem_prime_unpin = nouveau_gem_prime_unpin, - .gem_prime_get_sg_table = nouveau_gem_prime_get_sg_table, .gem_prime_import_sg_table = nouveau_gem_prime_import_sg_table, - .gem_prime_vmap = nouveau_gem_prime_vmap, - .gem_prime_vunmap = nouveau_gem_prime_vunmap, - - .gem_free_object_unlocked = nouveau_gem_object_del, - .gem_open_object = nouveau_gem_object_open, - .gem_close_object = nouveau_gem_object_close, .dumb_create = nouveau_display_dumb_create, .dumb_map_offset = nouveau_display_dumb_map_offset, diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 81f11...
2020 Sep 15
0
[PATCH v2 09/21] drm/nouveau: Introduce GEM object functions
...in, - .gem_prime_unpin = nouveau_gem_prime_unpin, - .gem_prime_get_sg_table = nouveau_gem_prime_get_sg_table, .gem_prime_import_sg_table = nouveau_gem_prime_import_sg_table, - .gem_prime_vmap = nouveau_gem_prime_vmap, - .gem_prime_vunmap = nouveau_gem_prime_vunmap, - - .gem_free_object_unlocked = nouveau_gem_object_del, - .gem_open_object = nouveau_gem_object_open, - .gem_close_object = nouveau_gem_object_close, .dumb_create = nouveau_display_dumb_create, .dumb_map_offset = nouveau_display_dumb_map_offset, diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 89ada...
2014 Oct 13
2
v3.17, i915 vs nouveau: possible recursive locking detected
...f+0x33/0xc0 [i915] [<ffffffff810df03a>] ? mark_held_locks+0x6a/0x90 [<ffffffffa010ae93>] i915_gem_unmap_dma_buf+0x33/0xc0 [i915] [<ffffffff814c3032>] dma_buf_unmap_attachment+0x22/0x40 [<ffffffffa0034e42>] drm_prime_gem_destroy+0x22/0x40 [drm] [<ffffffffa0299b5b>] nouveau_gem_object_del+0x3b/0x60 [nouveau] [<ffffffffa001c7b7>] drm_gem_object_free+0x27/0x30 [drm] [<ffffffffa001cd34>] drm_gem_object_handle_unreference_unlocked+0xe4/0x120 [drm] [<ffffffffa001ce2a>] drm_gem_handle_delete+0xba/0x110 [drm] [<ffffffffa001d495>] drm_gem_close_ioctl+0x25/0x30 [d...
2017 Feb 14
1
NVAC: WARN_ON(nvbo->pin_refcnt > 0);
...: 1 PID: 701 Comm: Xorg Not tainted 4.10.0-0.rc8.git0.1.fc26.x86_64 #1 ... Call Trace: dump_stack+0x63/0x84 __warn+0xcb/0xf0 warn_slowpath_null+0x1d/0x20 nouveau_bo_del_ttm+0x7f/0x90 [nouveau] ttm_bo_release_list+0xd7/0x1e0 [ttm] ttm_bo_release+0x19c/0x250 [ttm] ttm_bo_unref+0x23/0x30 [ttm] nouveau_gem_object_del+0x8f/0xe0 [nouveau] drm_gem_object_free+0x29/0x70 [drm] drm_gem_object_unreference_unlocked+0x34/0x80 [drm] drm_gem_object_handle_unreference_unlocked+0x69/0xc0 [drm] drm_gem_object_release_handle+0x53/0x90 [drm] ? drm_gem_object_handle_unreference_unlocked+0xc0/0xc0 [drm] idr_for_each+0xa4/0...
2017 Apr 06
0
NVAC - WARN_ON(nvbo->pin_refcnt > 0);
...... CPU: 3 PID: 692 Comm: Xorg Not tainted 4.10.8-1002.fc24.x86_64 #1 ... Call Trace: dump_stack+0x63/0x86 __warn+0xcb/0xf0 warn_slowpath_null+0x1d/0x20 nouveau_bo_del_ttm+0x7f/0x90 [nouveau] ttm_bo_release_list+0xcb/0x210 [ttm] ttm_bo_release+0x198/0x240 [ttm] ttm_bo_unref+0x24/0x30 [ttm] nouveau_gem_object_del+0x94/0xf0 [nouveau] drm_gem_object_free+0x29/0x70 [drm] drm_gem_object_unreference_unlocked+0x3a/0xa0 [drm] drm_gem_object_handle_unreference_unlocked+0x65/0xb0 [drm] drm_gem_object_release_handle+0x53/0x90 [drm] idr_for_each+0xb0/0x110 ? drm_gem_object_handle_unreference_unlocked+0xb0/0xb0 [...
2020 Jun 14
0
[PATCH] drm/nouveau: fix multiple instances of reference count leaks
...(_IOC_NR(cmd) - DRM_COMMAND_BASE) { case DRM_NOUVEAU_NVIF: diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 4c3f131ad31d..c5ee5b7364a0 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -45,8 +45,10 @@ nouveau_gem_object_del(struct drm_gem_object *gem) int ret; ret = pm_runtime_get_sync(dev); - if (WARN_ON(ret < 0 && ret != -EACCES)) + if (WARN_ON(ret < 0 && ret != -EACCES)) { + pm_runtime_put_autosuspend(dev); return; + } if (gem->import_attach) drm_prime_gem_destroy(gem, nvbo...
2020 Aug 10
0
[PATCH AUTOSEL 5.8 23/64] drm/nouveau: fix multiple instances of reference count leaks
..._IOC_NR(cmd) - DRM_COMMAND_BASE) { case DRM_NOUVEAU_NVIF: diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 4c3f131ad31da..c5ee5b7364a09 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -45,8 +45,10 @@ nouveau_gem_object_del(struct drm_gem_object *gem) int ret; ret = pm_runtime_get_sync(dev); - if (WARN_ON(ret < 0 && ret != -EACCES)) + if (WARN_ON(ret < 0 && ret != -EACCES)) { + pm_runtime_put_autosuspend(dev); return; + } if (gem->import_attach) drm_prime_gem_destroy(gem, nvbo...
2020 Aug 10
0
[PATCH AUTOSEL 5.7 21/60] drm/nouveau: fix multiple instances of reference count leaks
..._IOC_NR(cmd) - DRM_COMMAND_BASE) { case DRM_NOUVEAU_NVIF: diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index f5ece1f949734..f941ce8f81e3a 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -45,8 +45,10 @@ nouveau_gem_object_del(struct drm_gem_object *gem) int ret; ret = pm_runtime_get_sync(dev); - if (WARN_ON(ret < 0 && ret != -EACCES)) + if (WARN_ON(ret < 0 && ret != -EACCES)) { + pm_runtime_put_autosuspend(dev); return; + } if (gem->import_attach) drm_prime_gem_destroy(gem, nvbo...
2020 Aug 10
0
[PATCH AUTOSEL 5.4 17/45] drm/nouveau: fix multiple instances of reference count leaks
..._IOC_NR(cmd) - DRM_COMMAND_BASE) { case DRM_NOUVEAU_NVIF: diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 1324c19f4e5cf..fbfe254227740 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -45,8 +45,10 @@ nouveau_gem_object_del(struct drm_gem_object *gem) int ret; ret = pm_runtime_get_sync(dev); - if (WARN_ON(ret < 0 && ret != -EACCES)) + if (WARN_ON(ret < 0 && ret != -EACCES)) { + pm_runtime_put_autosuspend(dev); return; + } if (gem->import_attach) drm_prime_gem_destroy(gem, nvbo...
2020 Aug 10
0
[PATCH AUTOSEL 4.19 13/31] drm/nouveau: fix multiple instances of reference count leaks
..._IOC_NR(cmd) - DRM_COMMAND_BASE) { case DRM_NOUVEAU_NVIF: diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index b56524d343c3e..791f970714ed6 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -46,8 +46,10 @@ nouveau_gem_object_del(struct drm_gem_object *gem) int ret; ret = pm_runtime_get_sync(dev); - if (WARN_ON(ret < 0 && ret != -EACCES)) + if (WARN_ON(ret < 0 && ret != -EACCES)) { + pm_runtime_put_autosuspend(dev); return; + } if (gem->import_attach) drm_prime_gem_destroy(gem, nvbo...
2020 Aug 10
0
[PATCH AUTOSEL 4.14 08/22] drm/nouveau: fix multiple instances of reference count leaks
..._IOC_NR(cmd) - DRM_COMMAND_BASE) { case DRM_NOUVEAU_NVIF: diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 60ffb70bb9089..c6149b5be073e 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -42,8 +42,10 @@ nouveau_gem_object_del(struct drm_gem_object *gem) int ret; ret = pm_runtime_get_sync(dev); - if (WARN_ON(ret < 0 && ret != -EACCES)) + if (WARN_ON(ret < 0 && ret != -EACCES)) { + pm_runtime_put_autosuspend(dev); return; + } if (gem->import_attach) drm_prime_gem_destroy(gem, nvbo...
2020 Aug 10
0
[PATCH AUTOSEL 4.9 07/17] drm/nouveau: fix multiple instances of reference count leaks
..._IOC_NR(cmd) - DRM_COMMAND_BASE) { case DRM_NOUVEAU_NVIF: diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 505dca48b9f80..be6672da33a65 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -42,8 +42,10 @@ nouveau_gem_object_del(struct drm_gem_object *gem) int ret; ret = pm_runtime_get_sync(dev); - if (WARN_ON(ret < 0 && ret != -EACCES)) + if (WARN_ON(ret < 0 && ret != -EACCES)) { + pm_runtime_put_autosuspend(dev); return; + } if (gem->import_attach) drm_prime_gem_destroy(gem, nvbo...
2020 Aug 10
0
[PATCH AUTOSEL 4.4 06/16] drm/nouveau: fix multiple instances of reference count leaks
..._IOC_NR(cmd) - DRM_COMMAND_BASE) { case DRM_NOUVEAU_NVIF: diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index ae560f5977fca..e5db2a385cb65 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -42,8 +42,10 @@ nouveau_gem_object_del(struct drm_gem_object *gem) int ret; ret = pm_runtime_get_sync(dev); - if (WARN_ON(ret < 0 && ret != -EACCES)) + if (WARN_ON(ret < 0 && ret != -EACCES)) { + pm_runtime_put_autosuspend(dev); return; + } if (gem->import_attach) drm_prime_gem_destroy(gem, nvbo...
2014 Jun 08
0
lockdep splat while exiting PRIME
...x400 [<ffffffffa008ebb6>] ? i915_gem_unmap_dma_buf+0x36/0xd0 [i915] [<ffffffffa008ebb6>] i915_gem_unmap_dma_buf+0x36/0xd0 [i915] [<ffffffff8141eb4c>] dma_buf_unmap_attachment+0x4c/0x70 [<ffffffffa001beb2>] drm_prime_gem_destroy+0x22/0x40 [drm] [<ffffffffa07aa4de>] nouveau_gem_object_del+0x3e/0x60 [nouveau] [<ffffffffa000504a>] drm_gem_object_free+0x2a/0x40 [drm] [<ffffffffa00055e8>] drm_gem_object_handle_unreference_unlocked+0x128/0x130 [drm] [<ffffffffa00056aa>] drm_gem_handle_delete+0xba/0x110 [drm] [<ffffffffa0005dc5>] drm_gem_close_ioctl+0x25/0x30 [...
2014 Oct 16
0
[Intel-gfx] v3.17, i915 vs nouveau: possible recursive locking detected
...[<ffffffff810df03a>] ? mark_held_locks+0x6a/0x90 > [<ffffffffa010ae93>] i915_gem_unmap_dma_buf+0x33/0xc0 [i915] > [<ffffffff814c3032>] dma_buf_unmap_attachment+0x22/0x40 > [<ffffffffa0034e42>] drm_prime_gem_destroy+0x22/0x40 [drm] > [<ffffffffa0299b5b>] nouveau_gem_object_del+0x3b/0x60 [nouveau] > [<ffffffffa001c7b7>] drm_gem_object_free+0x27/0x30 [drm] > [<ffffffffa001cd34>] drm_gem_object_handle_unreference_unlocked+0xe4/0x120 [drm] > [<ffffffffa001ce2a>] drm_gem_handle_delete+0xba/0x110 [drm] > [<ffffffffa001d495>] drm_gem_clos...
2012 Nov 22
0
[resend PATCH] drm/nouveau: unpin buffers before releasing to prevent lockdep warnings
...nlocked(nouveau_fb->nvbo->gem); nouveau_fb->nvbo = NULL; } diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 5972ecd..6d8391d 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -52,7 +52,8 @@ nouveau_gem_object_del(struct drm_gem_object *gem) return; nvbo->gem = NULL; - if (unlikely(nvbo->pin_refcnt)) { + /* Lockdep hates you for doing reserve with gem object lock held */ + if (WARN_ON_ONCE(nvbo->pin_refcnt)) { nvbo->pin_refcnt = 1; nouveau_bo_unpin(nvbo); } diff --git a/drivers/gpu...
2012 Oct 12
0
[PATCH 3/3, resend with fixed to field] drm/nouveau: unpin buffers before releasing to prevent lockdep warnings
...nlocked(nouveau_fb->nvbo->gem); nouveau_fb->nvbo = NULL; } diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 5972ecd..6d8391d 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -52,7 +52,8 @@ nouveau_gem_object_del(struct drm_gem_object *gem) return; nvbo->gem = NULL; - if (unlikely(nvbo->pin_refcnt)) { + /* Lockdep hates you for doing reserve with gem object lock held */ + if (WARN_ON_ONCE(nvbo->pin_refcnt)) { nvbo->pin_refcnt = 1; nouveau_bo_unpin(nvbo); } diff --git a/drivers/gpu...
2015 Jun 15
4
[PATCH v2 0/2] drm/nouveau: option for staging ioctls and new GEM_SET_TILING ioctl
Second version of this patchset addressing Ben's comments and fixing a few extra things. This patchset proposes to introduce a "staging" module option to dynamically enable features (mostly ioctls) that are merged but may be refined before they are declared "stable". The second patch illustrates the use of this staging option with the SET_TILING ioctl, which can be used to
2014 Sep 28
1
[Bug 84424] New: nouveau crash log [mesa-10.3.0]
...0000000000000000 ffff8801408af9c0 0000000000000001 0000000000000001 [ 2643.920683] Call Trace: [ 2643.920698] [<ffffffffa017f027>] ? nouveau_fence_wait+0x77/0x180 [nouveau] [ 2643.920705] [<ffffffffa00bf437>] ? ttm_bo_wait+0xa7/0x1a0 [ttm] [ 2643.920716] [<ffffffffa0183b0a>] ? nouveau_gem_object_del+0x4a/0x50 [nouveau] [ 2643.920727] [<ffffffffa01855ac>] ? nouveau_gem_ioctl_cpu_prep+0x5c/0xf0 [nouveau] [ 2643.920733] [<ffffffff814cf75f>] ? drm_ioctl+0x20f/0x5f0 [ 2643.920744] [<ffffffffa017c2d6>] ? nouveau_drm_ioctl+0x76/0xa0 [nouveau] [ 2643.920749] [<ffffffff811799b7...
2014 Sep 26
0
[RFC PATCH 6/7] drm/nouveau: Support marking buffers for explicit sync
...7 @@ nouveau_gem_object(struct drm_gem_object *gem) /* nouveau_gem.c */ extern int nouveau_gem_new(struct drm_device *, int size, int align, uint32_t domain, uint32_t tile_mode, - uint32_t tile_flags, struct nouveau_bo **); + uint32_t bo_flags, struct nouveau_bo **); extern void nouveau_gem_object_del(struct drm_gem_object *); extern int nouveau_gem_object_open(struct drm_gem_object *, struct drm_file *); extern void nouveau_gem_object_close(struct drm_gem_object *, @@ -35,6 +35,8 @@ extern int nouveau_gem_ioctl_cpu_fini(struct drm_device *, void *, struct drm_file *); extern int n...