Commit 68438527 authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu: remove fence slab



Just use kmalloc for the fences in the rare case we need
an independent fence.

Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 49f1f9f6
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -470,9 +470,6 @@ struct amdgpu_sa_manager {
	void				*cpu_ptr;
};

int amdgpu_fence_slab_init(void);
void amdgpu_fence_slab_fini(void);

/*
 * IRQS.
 */
+0 −5
Original line number Diff line number Diff line
@@ -3113,10 +3113,6 @@ static int __init amdgpu_init(void)
	if (r)
		goto error_sync;

	r = amdgpu_fence_slab_init();
	if (r)
		goto error_fence;

	r = amdgpu_userq_fence_slab_init();
	if (r)
		goto error_fence;
@@ -3151,7 +3147,6 @@ static void __exit amdgpu_exit(void)
	amdgpu_unregister_atpx_handler();
	amdgpu_acpi_release();
	amdgpu_sync_fini();
	amdgpu_fence_slab_fini();
	amdgpu_userq_fence_slab_fini();
	mmu_notifier_synchronize();
	amdgpu_xcp_drv_release();
+4 −19
Original line number Diff line number Diff line
@@ -41,21 +41,6 @@
#include "amdgpu_trace.h"
#include "amdgpu_reset.h"

static struct kmem_cache *amdgpu_fence_slab;

int amdgpu_fence_slab_init(void)
{
	amdgpu_fence_slab = KMEM_CACHE(amdgpu_fence, SLAB_HWCACHE_ALIGN);
	if (!amdgpu_fence_slab)
		return -ENOMEM;
	return 0;
}

void amdgpu_fence_slab_fini(void)
{
	rcu_barrier();
	kmem_cache_destroy(amdgpu_fence_slab);
}
/*
 * Cast helper
 */
@@ -131,9 +116,9 @@ int amdgpu_fence_emit(struct amdgpu_ring *ring, struct dma_fence **f, struct amd
	int r;

	if (job == NULL) {
		/* create a sperate hw fence */
		am_fence = kmem_cache_alloc(amdgpu_fence_slab, GFP_ATOMIC);
		if (am_fence == NULL)
		/* create a separate hw fence */
		am_fence = kzalloc(sizeof(*am_fence), GFP_KERNEL);
		if (!am_fence)
			return -ENOMEM;
	} else {
		/* take use of job-embedded fence */
@@ -814,7 +799,7 @@ static void amdgpu_fence_free(struct rcu_head *rcu)
	struct dma_fence *f = container_of(rcu, struct dma_fence, rcu);

	/* free fence_slab if it's separated fence*/
	kmem_cache_free(amdgpu_fence_slab, to_amdgpu_fence(f));
	kfree(to_amdgpu_fence(f));
}

/**