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

Commit 244ca2b4 authored by Al Viro's avatar Al Viro
Browse files

i810: switch to vm_mmap()



Weirdness around do_mmap() in there does not rely on ->mmap_sem for
exclusion, so no need to keep it under that.  As the result, we can
turn that do_mmap() into vm_mmap().

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent fd657170
Loading
Loading
Loading
Loading
+1 −3
Original line number Original line Diff line number Diff line
@@ -130,11 +130,10 @@ static int i810_map_buffer(struct drm_buf *buf, struct drm_file *file_priv)
		return -EINVAL;
		return -EINVAL;


	/* This is all entirely broken */
	/* This is all entirely broken */
	down_write(&current->mm->mmap_sem);
	old_fops = file_priv->filp->f_op;
	old_fops = file_priv->filp->f_op;
	file_priv->filp->f_op = &i810_buffer_fops;
	file_priv->filp->f_op = &i810_buffer_fops;
	dev_priv->mmap_buffer = buf;
	dev_priv->mmap_buffer = buf;
	buf_priv->virtual = (void *)do_mmap(file_priv->filp, 0, buf->total,
	buf_priv->virtual = (void *)vm_mmap(file_priv->filp, 0, buf->total,
					    PROT_READ | PROT_WRITE,
					    PROT_READ | PROT_WRITE,
					    MAP_SHARED, buf->bus_address);
					    MAP_SHARED, buf->bus_address);
	dev_priv->mmap_buffer = NULL;
	dev_priv->mmap_buffer = NULL;
@@ -145,7 +144,6 @@ static int i810_map_buffer(struct drm_buf *buf, struct drm_file *file_priv)
		retcode = PTR_ERR(buf_priv->virtual);
		retcode = PTR_ERR(buf_priv->virtual);
		buf_priv->virtual = NULL;
		buf_priv->virtual = NULL;
	}
	}
	up_write(&current->mm->mmap_sem);


	return retcode;
	return retcode;
}
}