lkml.org 
[lkml]   [2022]   [May]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v6 12/22] drm/virtio: Simplify error handling of virtio_gpu_object_create()
    Date
    Change the order of SHMEM initialization and reservation locking
    to make code cleaner and to prepare for transitioning of the common
    GEM SHMEM code to use the GEM's reservation lock instead of the
    shmem.page_lock.

    There is no need to lock reservation during allocation of the SHMEM pages
    because the lock is needed only to avoid racing with the async host-side
    allocation. Hence we can safely move the SHMEM initialization out of the
    reservation lock.

    Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
    ---
    drivers/gpu/drm/virtio/virtgpu_object.c | 13 ++++---------
    1 file changed, 4 insertions(+), 9 deletions(-)

    diff --git a/drivers/gpu/drm/virtio/virtgpu_object.c b/drivers/gpu/drm/virtio/virtgpu_object.c
    index 21c19cdedce0..18f70ef6b4d0 100644
    --- a/drivers/gpu/drm/virtio/virtgpu_object.c
    +++ b/drivers/gpu/drm/virtio/virtgpu_object.c
    @@ -236,6 +236,10 @@ int virtio_gpu_object_create(struct virtio_gpu_device *vgdev,

    bo->dumb = params->dumb;

    + ret = virtio_gpu_object_shmem_init(vgdev, bo, &ents, &nents);
    + if (ret != 0)
    + goto err_put_id;
    +
    if (fence) {
    ret = -ENOMEM;
    objs = virtio_gpu_array_alloc(1);
    @@ -248,15 +252,6 @@ int virtio_gpu_object_create(struct virtio_gpu_device *vgdev,
    goto err_put_objs;
    }

    - ret = virtio_gpu_object_shmem_init(vgdev, bo, &ents, &nents);
    - if (ret != 0) {
    - if (fence)
    - virtio_gpu_array_unlock_resv(objs);
    - virtio_gpu_array_put_free(objs);
    - virtio_gpu_free_object(&shmem_obj->base);
    - return ret;
    - }
    -
    if (params->blob) {
    if (params->blob_mem == VIRTGPU_BLOB_MEM_GUEST)
    bo->guest_blob = true;
    --
    2.35.3
    \
     
     \ /
      Last update: 2022-05-27 01:56    [W:4.299 / U:0.208 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site