summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Elfring <elfring@users.sourceforge.net>2017-01-21 16:10:50 +0100
committerMichael Ellerman <mpe@ellerman.id.au>2017-01-25 13:34:22 +1100
commita967f161abc7c4a6936ceb15737f75c52bfd07f2 (patch)
treeb40a6cdb43d2d56421e7bfb61fee3506ea809197
parent3c4b66a6d0d2b9f2418f9a09d528e42e2dc18acf (diff)
downloadlinux-a967f161abc7c4a6936ceb15737f75c52bfd07f2.tar.gz
linux-a967f161abc7c4a6936ceb15737f75c52bfd07f2.tar.bz2
linux-a967f161abc7c4a6936ceb15737f75c52bfd07f2.zip
powerpc/mm: Return directly after a failed __copy_from_user() in sys_subpage_prot()
This function already has multiple exit points, so there's no harm adding another. Although it looks odd to return directly in a function which takes a lock, we've actually just dropped the mmap_sem in this code, so there's really no reason to go via a label. And it means we can drop the unhelpfully named out2 label. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> [mpe: Rewrite change log] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r--arch/powerpc/mm/subpage-prot.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/powerpc/mm/subpage-prot.c b/arch/powerpc/mm/subpage-prot.c
index 5c096c01e8bd..94210940112f 100644
--- a/arch/powerpc/mm/subpage-prot.c
+++ b/arch/powerpc/mm/subpage-prot.c
@@ -248,9 +248,8 @@ long sys_subpage_prot(unsigned long addr, unsigned long len, u32 __user *map)
nw = (next - addr) >> PAGE_SHIFT;
up_write(&mm->mmap_sem);
- err = -EFAULT;
if (__copy_from_user(spp, map, nw * sizeof(u32)))
- goto out2;
+ return -EFAULT;
map += nw;
down_write(&mm->mmap_sem);
@@ -262,6 +261,5 @@ long sys_subpage_prot(unsigned long addr, unsigned long len, u32 __user *map)
err = 0;
out:
up_write(&mm->mmap_sem);
- out2:
return err;
}