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

Commit 98f74f3d authored by Deepak Kumar's avatar Deepak Kumar Committed by Gerrit - the friendly Code Review server
Browse files

msm: kgsl: Access dma_buf_attachment pointer only if its valid



dma_buf_attach can return a negative error code wrapped
into a pointer on failure. Correct the error check and move
access to dma_buf_attachment pointer after the error check
to avoid accessing invalid pointer.

Change-Id: I77426fefb17370da5ed57878632bec8bacbc77a0
Signed-off-by: default avatarDeepak Kumar <dkumar@codeaurora.org>
parent c6584024
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -2662,6 +2662,12 @@ static int kgsl_setup_dma_buf(struct kgsl_device *device,
		return -ENOMEM;

	attach = dma_buf_attach(dmabuf, device->dev);

	if (IS_ERR(attach)) {
		ret = PTR_ERR(attach);
		goto out;
	}

	/*
	 * If dma buffer is marked IO coherent, skip sync at attach,
	 * which involves flushing the buffer on CPU.
@@ -2670,11 +2676,6 @@ static int kgsl_setup_dma_buf(struct kgsl_device *device,
	if (entry->memdesc.flags & KGSL_MEMFLAGS_IOCOHERENT)
		attach->dma_map_attrs |= DMA_ATTR_SKIP_CPU_SYNC;

	if (IS_ERR_OR_NULL(attach)) {
		ret = attach ? PTR_ERR(attach) : -EINVAL;
		goto out;
	}

	meta->dmabuf = dmabuf;
	meta->attach = attach;
	meta->entry = entry;