Commit 2c16d291 authored by Christian König's avatar Christian König
Browse files

Revert "mm: mmap: fix fput in error path v2"



The kernel test robot is not happy with that.

This reverts commit 0227da01.

Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Acked-by: default avatarDaniel Vetter <daniel@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/394772/
parent e40b0b56
Loading
Loading
Loading
Loading
+17 −3
Original line number Diff line number Diff line
@@ -1166,6 +1166,9 @@ EXPORT_SYMBOL_GPL(dma_buf_end_cpu_access);
int dma_buf_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma,
		 unsigned long pgoff)
{
	struct file *oldfile;
	int ret;

	if (WARN_ON(!dmabuf || !vma))
		return -EINVAL;

@@ -1183,11 +1186,22 @@ int dma_buf_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma,
		return -EINVAL;

	/* readjust the vma */
	fput(vma->vm_file);
	vma->vm_file = get_file(dmabuf->file);
	get_file(dmabuf->file);
	oldfile = vma->vm_file;
	vma->vm_file = dmabuf->file;
	vma->vm_pgoff = pgoff;

	return dmabuf->ops->mmap(dmabuf, vma);
	ret = dmabuf->ops->mmap(dmabuf, vma);
	if (ret) {
		/* restore old parameters on failure */
		vma->vm_file = oldfile;
		fput(dmabuf->file);
	} else {
		if (oldfile)
			fput(oldfile);
	}
	return ret;

}
EXPORT_SYMBOL_GPL(dma_buf_mmap);

+1 −1
Original line number Diff line number Diff line
@@ -1899,8 +1899,8 @@ out:
	return addr;

unmap_and_free_vma:
	fput(vma->vm_file);
	vma->vm_file = NULL;
	fput(file);

	/* Undo any partial mapping done by a device driver. */
	unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);