Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 53766e5a authored by Christian König's avatar Christian König Committed by Alex Deucher
Browse files

drm/amdgpu: improve amdgpu_bo_create_kernel



Make allocating the new BO optional.

Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent ed5b89c6
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -239,16 +239,21 @@ int amdgpu_bo_create_kernel(struct amdgpu_device *adev,
			    u32 domain, struct amdgpu_bo **bo_ptr,
			    u64 *gpu_addr, void **cpu_addr)
{
	bool free = false;
	int r;

	if (!*bo_ptr) {
		r = amdgpu_bo_create(adev, size, align, true, domain,
				     AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
				     AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS,
				     NULL, NULL, bo_ptr);
		if (r) {
		dev_err(adev->dev, "(%d) failed to allocate kernel bo\n", r);
			dev_err(adev->dev, "(%d) failed to allocate kernel bo\n",
				r);
			return r;
		}
		free = true;
	}

	r = amdgpu_bo_reserve(*bo_ptr, false);
	if (r) {
@@ -278,6 +283,7 @@ int amdgpu_bo_create_kernel(struct amdgpu_device *adev,
	amdgpu_bo_unreserve(*bo_ptr);

error_free:
	if (free)
		amdgpu_bo_unref(bo_ptr);

	return r;