search for: reservation_object_unlock

Displaying 20 results from an estimated 32 matches for "reservation_object_unlock".

2019 Jun 18
1
[PATCH v2 06/12] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...nlikely(r != 0)) { if (r != -ERESTARTSYS) { struct virtio_gpu_device *qdev = @@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo) static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo) { - ttm_bo_unreserve(&bo->tbo); + reservation_object_unlock(bo->gem_base.resv); } /* virgl debufs */ -- 2.18.1
2019 Jun 21
0
[PATCH v2 16/18] drm/qxl: switch driver from bo->resv to bo->base.resv
...s(struct qxl_release *release) list_for_each_entry(entry, &release->bos, head) { bo = entry->bo; - reservation_object_add_shared_fence(bo->resv, &release->base); + reservation_object_add_shared_fence(bo->base.resv, &release->base); ttm_bo_add_to_lru(bo); - reservation_object_unlock(bo->resv); + reservation_object_unlock(bo->base.resv); } spin_unlock(&glob->lru_lock); ww_acquire_fini(&release->ticket); -- 2.18.1
2019 Jun 28
0
[PATCH v3 16/18] drm/qxl: switch driver from bo->resv to bo->base.resv
...s(struct qxl_release *release) list_for_each_entry(entry, &release->bos, head) { bo = entry->bo; - reservation_object_add_shared_fence(bo->resv, &release->base); + reservation_object_add_shared_fence(bo->base.resv, &release->base); ttm_bo_add_to_lru(bo); - reservation_object_unlock(bo->resv); + reservation_object_unlock(bo->base.resv); } spin_unlock(&glob->lru_lock); ww_acquire_fini(&release->ticket); -- 2.18.1
2019 Aug 02
0
[PATCH v4 15/17] drm/qxl: switch driver from bo->resv to bo->base.resv
...s(struct qxl_release *release) list_for_each_entry(entry, &release->bos, head) { bo = entry->bo; - reservation_object_add_shared_fence(bo->resv, &release->base); + reservation_object_add_shared_fence(bo->base.resv, &release->base); ttm_bo_add_to_lru(bo); - reservation_object_unlock(bo->resv); + reservation_object_unlock(bo->base.resv); } spin_unlock(&glob->lru_lock); ww_acquire_fini(&release->ticket); -- 2.18.1
2019 Aug 05
0
[PATCH v5 16/18] drm/qxl: switch driver from bo->resv to bo->base.resv
...s(struct qxl_release *release) list_for_each_entry(entry, &release->bos, head) { bo = entry->bo; - reservation_object_add_shared_fence(bo->resv, &release->base); + reservation_object_add_shared_fence(bo->base.resv, &release->base); ttm_bo_add_to_lru(bo); - reservation_object_unlock(bo->resv); + reservation_object_unlock(bo->base.resv); } spin_unlock(&glob->lru_lock); ww_acquire_fini(&release->ticket); -- 2.18.1
2019 Aug 05
0
[PATCH v6 15/17] drm/qxl: switch driver from bo->resv to bo->base.resv
...s(struct qxl_release *release) list_for_each_entry(entry, &release->bos, head) { bo = entry->bo; - reservation_object_add_shared_fence(bo->resv, &release->base); + reservation_object_add_shared_fence(bo->base.resv, &release->base); ttm_bo_add_to_lru(bo); - reservation_object_unlock(bo->resv); + reservation_object_unlock(bo->base.resv); } spin_unlock(&glob->lru_lock); ww_acquire_fini(&release->ticket); -- 2.18.1
2019 Jun 19
1
[PATCH v3 07/12] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...ev->dev_private; dev_err(qdev->dev, "%p reserve failed\n", bo); @@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo) static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo) { - ttm_bo_unreserve(&bo->tbo); + reservation_object_unlock(bo->gem_base.resv); } /* virgl debufs */ -- 2.18.1
2019 Jul 02
2
[PATCH v6 06/18] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...ev->dev_private; dev_err(qdev->dev, "%p reserve failed\n", bo); @@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo) static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo) { - ttm_bo_unreserve(&bo->tbo); + reservation_object_unlock(bo->gem_base.resv); } /* virgl debufs */ -- 2.18.1
2019 Jul 02
2
[PATCH v6 06/18] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...ev->dev_private; dev_err(qdev->dev, "%p reserve failed\n", bo); @@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo) static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo) { - ttm_bo_unreserve(&bo->tbo); + reservation_object_unlock(bo->gem_base.resv); } /* virgl debufs */ -- 2.18.1
2019 Sep 06
4
Xorg indefinitely hangs in kernelspace
..._acq list_for_each_entry(entry, list, head) { struct ttm_buffer_object *bo = entry->bo; + last_entry = entry; ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket); + if (!ret) + locked = true; if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) { reservation_object_unlock(bo->resv); @@ -151,6 +155,10 @@ int ttm_eu_reserve_buffers(struct ww_acq ret = 0; } } + if (!ret) + locked = true; + else + locked = false; if (!ret && entry->num_shared) ret = reservation_object_reserve_shared(bo->resv, @@ -163,6 +171,8 @@ int ttm_eu_r...
2019 Sep 06
4
Xorg indefinitely hangs in kernelspace
..._acq list_for_each_entry(entry, list, head) { struct ttm_buffer_object *bo = entry->bo; + last_entry = entry; ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket); + if (!ret) + locked = true; if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) { reservation_object_unlock(bo->resv); @@ -151,6 +155,10 @@ int ttm_eu_reserve_buffers(struct ww_acq ret = 0; } } + if (!ret) + locked = true; + else + locked = false; if (!ret && entry->num_shared) ret = reservation_object_reserve_shared(bo->resv, @@ -163,6 +171,8 @@ int ttm_eu_r...
2019 Jun 20
0
[PATCH v4 06/12] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...ev->dev_private; dev_err(qdev->dev, "%p reserve failed\n", bo); @@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo) static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo) { - ttm_bo_unreserve(&bo->tbo); + reservation_object_unlock(bo->gem_base.resv); } /* virgl debufs */ -- 2.18.1
2019 Jun 28
0
[PATCH v5 06/12] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...ev->dev_private; dev_err(qdev->dev, "%p reserve failed\n", bo); @@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo) static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo) { - ttm_bo_unreserve(&bo->tbo); + reservation_object_unlock(bo->gem_base.resv); } /* virgl debufs */ -- 2.18.1
2019 Jul 02
0
[PATCH v6 17/18] drm/virtio: drop virtio_gpu_object_{reserve, unreserve}
...(r != 0)) { - if (r != -EINTR) { - struct virtio_gpu_device *qdev = - bo->base.base.dev->dev_private; - dev_err(qdev->dev, "%p reserve failed\n", bo); - } - return r; - } - return 0; -} - -static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo) -{ - reservation_object_unlock(bo->base.base.resv); -} - /* virgl debufs */ int virtio_gpu_debugfs_init(struct drm_minor *minor); -- 2.18.1
2019 Jul 03
0
[PATCH v6 06/18] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...;dev, "%p reserve failed\n", bo); > @@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo) > > static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo) > { > - ttm_bo_unreserve(&bo->tbo); > + reservation_object_unlock(bo->gem_base.resv); > } > > /* virgl debufs */ > -- > 2.18.1 >
2019 Aug 02
0
[PATCH v7 06/18] drm/virtio: remove ttm calls from in virtio_gpu_object_{reserve, unreserve}
...ev->dev_private; dev_err(qdev->dev, "%p reserve failed\n", bo); @@ -416,7 +416,7 @@ static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo) static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo) { - ttm_bo_unreserve(&bo->tbo); + reservation_object_unlock(bo->gem_base.resv); } /* virgl debufs */ -- 2.18.1
2019 Aug 02
0
[PATCH v7 17/18] drm/virtio: drop virtio_gpu_object_{reserve, unreserve}
...(r != 0)) { - if (r != -EINTR) { - struct virtio_gpu_device *qdev = - bo->base.base.dev->dev_private; - dev_err(qdev->dev, "%p reserve failed\n", bo); - } - return r; - } - return 0; -} - -static inline void virtio_gpu_object_unreserve(struct virtio_gpu_object *bo) -{ - reservation_object_unlock(bo->base.base.resv); -} - /* virgl debufs */ int virtio_gpu_debugfs_init(struct drm_minor *minor); -- 2.18.1
2019 Sep 09
0
Xorg indefinitely hangs in kernelspace
...e_buffers(struct ww_acq list_for_each_entry(entry, list, head) { struct ttm_buffer_object *bo = entry->bo; + bool lockon; ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket); + lockon = !ret; if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) { reservation_object_unlock(bo->resv); @@ -151,6 +153,7 @@ int ttm_eu_reserve_buffers(struct ww_acq ret = 0; } } + lockon = !ret; if (!ret && entry->num_shared) ret = reservation_object_reserve_shared(bo->resv, @@ -163,6 +166,8 @@ int ttm_eu_reserve_buffers(struct ww_acq ww_acquir...
2019 Aug 02
0
[PATCH v7 07/18] drm/virtio: add virtio_gpu_object_array & helpers
...t = reservation_object_lock(objs->objs[0]->resv, NULL); + } else { + ret = drm_gem_lock_reservations(objs->objs, objs->nents, + &objs->ticket); + } + return ret; +} + +void virtio_gpu_array_unlock_resv(struct virtio_gpu_object_array *objs) +{ + if (objs->nents == 1) { + reservation_object_unlock(objs->objs[0]->resv); + } else { + drm_gem_unlock_reservations(objs->objs, objs->nents, + &objs->ticket); + } +} + +void virtio_gpu_array_add_fence(struct virtio_gpu_object_array *objs, + struct dma_fence *fence) +{ + int i; + + for (i = 0; i < objs->nents; i++)...
2019 Sep 06
0
[Spice-devel] Xorg indefinitely hangs in kernelspace
...head) { > struct ttm_buffer_object *bo = entry->bo; > > + last_entry = entry; > ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket); > + if (!ret) > + locked = true; > if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) { > reservation_object_unlock(bo->resv); > > @@ -151,6 +155,10 @@ int ttm_eu_reserve_buffers(struct ww_acq > ret = 0; > } > } > + if (!ret) > + locked = true; > + else > + locked = false; > locked = !ret; ? > if (!ret && entry->num_shared) > ret...