]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu/userq: move some code around
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 10 Apr 2025 17:49:47 +0000 (13:49 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 21 Apr 2025 14:49:20 +0000 (10:49 -0400)
Move some userq fence handling code into amdgpu_userq_fence.c.
This matches the other code in that file.

Reviewed-by: Sunil Khatri <sunil.khatri@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c
drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.h
drivers/gpu/drm/amd/amdgpu/amdgpu_userqueue.c

index a4953d668972a151a44d72df997281c4fce7d423..ee73d7846c2cafbd9723808b7d6e6678fa1f2721 100644 (file)
@@ -120,6 +120,32 @@ free_fence_drv:
        return r;
 }
 
+static void amdgpu_userq_walk_and_drop_fence_drv(struct xarray *xa)
+{
+       struct amdgpu_userq_fence_driver *fence_drv;
+       unsigned long index;
+
+       if (xa_empty(xa))
+               return;
+
+       xa_lock(xa);
+       xa_for_each(xa, index, fence_drv) {
+               __xa_erase(xa, index);
+               amdgpu_userq_fence_driver_put(fence_drv);
+       }
+
+       xa_unlock(xa);
+}
+
+void
+amdgpu_userq_fence_driver_free(struct amdgpu_usermode_queue *userq)
+{
+       amdgpu_userq_walk_and_drop_fence_drv(&userq->fence_drv_xa);
+       xa_destroy(&userq->fence_drv_xa);
+       /* Drop the fence_drv reference held by user queue */
+       amdgpu_userq_fence_driver_put(userq->fence_drv);
+}
+
 void amdgpu_userq_fence_driver_process(struct amdgpu_userq_fence_driver *fence_drv)
 {
        struct amdgpu_userq_fence *userq_fence, *tmp;
index f0a91cc028808a31a1713d3d504ef2c936a1804a..7bbae238cca0b08719ea387217a1a877c39ba37d 100644 (file)
@@ -66,6 +66,7 @@ void amdgpu_userq_fence_driver_get(struct amdgpu_userq_fence_driver *fence_drv);
 void amdgpu_userq_fence_driver_put(struct amdgpu_userq_fence_driver *fence_drv);
 int amdgpu_userq_fence_driver_alloc(struct amdgpu_device *adev,
                                    struct amdgpu_usermode_queue *userq);
+void amdgpu_userq_fence_driver_free(struct amdgpu_usermode_queue *userq);
 void amdgpu_userq_fence_driver_process(struct amdgpu_userq_fence_driver *fence_drv);
 void amdgpu_userq_fence_driver_destroy(struct kref *ref);
 int amdgpu_userq_signal_ioctl(struct drm_device *dev, void *data,
index c3873041ec942e5224624d9a6c7721886cfa9624..79f4df4255c50ac6122534a5311503d3867aabc8 100644 (file)
 #include "amdgpu_userqueue.h"
 #include "amdgpu_userq_fence.h"
 
-static void amdgpu_userq_walk_and_drop_fence_drv(struct xarray *xa)
-{
-       struct amdgpu_userq_fence_driver *fence_drv;
-       unsigned long index;
-
-       if (xa_empty(xa))
-               return;
-
-       xa_lock(xa);
-       xa_for_each(xa, index, fence_drv) {
-               __xa_erase(xa, index);
-               amdgpu_userq_fence_driver_put(fence_drv);
-       }
-
-       xa_unlock(xa);
-}
-
-static void
-amdgpu_userq_fence_driver_free(struct amdgpu_usermode_queue *userq)
-{
-       amdgpu_userq_walk_and_drop_fence_drv(&userq->fence_drv_xa);
-       xa_destroy(&userq->fence_drv_xa);
-       /* Drop the fence_drv reference held by user queue */
-       amdgpu_userq_fence_driver_put(userq->fence_drv);
-}
-
 static void
 amdgpu_userqueue_cleanup(struct amdgpu_userq_mgr *uq_mgr,
                         struct amdgpu_usermode_queue *queue,