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

Commit b54b3590 authored by Dan Carpenter's avatar Dan Carpenter Committed by Jordan Crouse
Browse files

drm/msm: return -EFAULT if copy_from_user() fails



copy_from_user_inatomic() is actually a local function that returns
-EFAULT or positive values on error.  Otherwise copy_from_user() returns
the number of bytes remaining to be copied.  We want to return -EFAULT
here.

I removed an unlikely() because we just did a copy_from_user()
so I don't think it can possibly make a difference.

Change-Id: Ic0dedbad3437020c12053b6d93276a4dd24a577a
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
Git-commit: 21c42da18ef128ca8fb4cc4ead888f5c61e3916a
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git


[jcrouse@codeaurora.org: fix minor merge conflict and checkpatch errors]
Signed-off-by: default avatarJordan Crouse <jcrouse@codeaurora.org>
parent 095e8c48
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -79,13 +79,16 @@ static int submit_lookup_objects(struct msm_gem_submit *submit,
		void __user *userptr =
			to_user_ptr(args->bos + (i * sizeof(submit_bo)));

		ret = copy_from_user_inatomic(&submit_bo, userptr, sizeof(submit_bo));
		if (unlikely(ret)) {
		if (copy_from_user_inatomic(&submit_bo, userptr,
			sizeof(submit_bo))) {
			pagefault_enable();
			spin_unlock(&file->table_lock);
			ret = copy_from_user(&submit_bo, userptr, sizeof(submit_bo));
			if (ret)
			if (copy_from_user(&submit_bo, userptr,
				sizeof(submit_bo))) {
				ret = -EFAULT;
				goto out;
			}

			spin_lock(&file->table_lock);
			pagefault_disable();
		}
@@ -280,8 +283,8 @@ static int submit_reloc(struct msm_gem_submit *submit, struct msm_gem_object *ob
		uint32_t off;
		bool valid;

		ret = copy_from_user(&submit_reloc, userptr, sizeof(submit_reloc));
		if (ret)
		if (copy_from_user(&submit_reloc, userptr,
			sizeof(submit_reloc)))
			return -EFAULT;

		if (submit_reloc.submit_offset % 4) {