alpha: don't bother with __access_ok() in traps.c
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 27 Dec 2016 07:23:46 +0000 (02:23 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 28 Mar 2017 22:23:18 +0000 (18:23 -0400)
we want to check that address is below TASK_SIZE; sure,
__access_ok(addr, 0, USER_DS) will do that, but it's more straightforward
to just spell it out and that way we can get rid of the damn 'segment'
argument of __access_ok().

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/alpha/kernel/traps.c

index b137390e87e7922c3dc091ed378152c35afa2664..b724ad88f7e8ea66cd558d0b4a29b500b4cb95b1 100644 (file)
@@ -802,7 +802,7 @@ do_entUnaUser(void __user * va, unsigned long opcode,
        /* Don't bother reading ds in the access check since we already
           know that this came from the user.  Also rely on the fact that
           the page at TASK_SIZE is unmapped and so can't be touched anyway. */
-       if (!__access_ok((unsigned long)va, 0, USER_DS))
+       if ((unsigned long)va >= TASK_SIZE)
                goto give_sigsegv;
 
        ++unaligned[1].count;
@@ -1047,7 +1047,7 @@ give_sigsegv:
        /* We need to replicate some of the logic in mm/fault.c,
           since we don't have access to the fault code in the
           exception handling return path.  */
-       if (!__access_ok((unsigned long)va, 0, USER_DS))
+       if ((unsigned long)va >= TASK_SIZE)
                info.si_code = SEGV_ACCERR;
        else {
                struct mm_struct *mm = current->mm;