From: Jesper Juhl There were still a few comments left refering to verify_area, and two functions, verify_area_skas & verify_area_tt that just wrap corresponding access_ok_skas & access_ok_tt functions, just like verify_area does for access_ok - deprecate those. There was also a few places that still used verify_area in commented-out code, fix those up to use access_ok. After applying this one there should not be anything left but finally removing verify_area completely, which will happen after a kernel release or two. Signed-off-by: Jesper Juhl Signed-off-by: Andrew Morton --- arch/i386/kernel/vm86.c | 2 +- arch/um/kernel/skas/include/uaccess-skas.h | 2 +- arch/um/kernel/tt/include/uaccess-tt.h | 2 +- drivers/char/dtlk.c | 2 +- drivers/char/specialix.c | 11 ++++------- include/asm-frv/pgtable.h | 4 ++-- include/asm-i386/checksum.h | 2 +- include/asm-i386/pgtable.h | 4 ++-- include/asm-parisc/uaccess.h | 2 +- include/asm-sh/checksum.h | 2 +- include/asm-sh64/checksum.h | 2 +- include/asm-sparc/uaccess.h | 2 +- net/8021q/vlanproc.c | 2 +- net/atm/common.c | 4 ++-- net/core/iovec.c | 2 +- net/wanrouter/wanmain.c | 4 ++-- 16 files changed, 23 insertions(+), 26 deletions(-) diff -puN arch/i386/kernel/vm86.c~misc-verify_area-cleanups arch/i386/kernel/vm86.c --- 25/arch/i386/kernel/vm86.c~misc-verify_area-cleanups 2005-04-25 22:06:42.554753480 -0700 +++ 25-akpm/arch/i386/kernel/vm86.c 2005-04-25 22:06:42.579749680 -0700 @@ -222,7 +222,7 @@ asmlinkage int sys_vm86(struct pt_regs r goto out; case VM86_PLUS_INSTALL_CHECK: /* NOTE: on old vm86 stuff this will return the error - from verify_area(), because the subfunction is + from access_ok(), because the subfunction is interpreted as (invalid) address to vm86_struct. So the installation check works. */ diff -puN arch/um/kernel/skas/include/uaccess-skas.h~misc-verify_area-cleanups arch/um/kernel/skas/include/uaccess-skas.h --- 25/arch/um/kernel/skas/include/uaccess-skas.h~misc-verify_area-cleanups 2005-04-25 22:06:42.555753328 -0700 +++ 25-akpm/arch/um/kernel/skas/include/uaccess-skas.h 2005-04-25 22:06:42.579749680 -0700 @@ -18,7 +18,7 @@ ((unsigned long) (addr) + (size) <= FIXADDR_USER_END) && \ ((unsigned long) (addr) + (size) >= (unsigned long)(addr)))) -static inline int verify_area_skas(int type, const void * addr, +static inline int __deprecated verify_area_skas(int type, const void * addr, unsigned long size) { return(access_ok_skas(type, addr, size) ? 0 : -EFAULT); diff -puN arch/um/kernel/tt/include/uaccess-tt.h~misc-verify_area-cleanups arch/um/kernel/tt/include/uaccess-tt.h --- 25/arch/um/kernel/tt/include/uaccess-tt.h~misc-verify_area-cleanups 2005-04-25 22:06:42.557753024 -0700 +++ 25-akpm/arch/um/kernel/tt/include/uaccess-tt.h 2005-04-25 22:06:42.580749528 -0700 @@ -33,7 +33,7 @@ extern unsigned long uml_physmem; (((unsigned long) (addr) <= ((unsigned long) (addr) + (size))) && \ (under_task_size(addr, size) || is_stack(addr, size)))) -static inline int verify_area_tt(int type, const void * addr, +static inline int __deprecated verify_area_tt(int type, const void * addr, unsigned long size) { return(access_ok_tt(type, addr, size) ? 0 : -EFAULT); diff -puN drivers/char/dtlk.c~misc-verify_area-cleanups drivers/char/dtlk.c --- 25/drivers/char/dtlk.c~misc-verify_area-cleanups 2005-04-25 22:06:42.559752720 -0700 +++ 25-akpm/drivers/char/dtlk.c 2005-04-25 22:06:42.580749528 -0700 @@ -52,7 +52,7 @@ #define KERNEL #include #include -#include /* for verify_area */ +#include #include /* for -EBUSY */ #include /* for request_region */ #include /* for loops_per_jiffy */ diff -puN drivers/char/specialix.c~misc-verify_area-cleanups drivers/char/specialix.c --- 25/drivers/char/specialix.c~misc-verify_area-cleanups 2005-04-25 22:06:42.561752416 -0700 +++ 25-akpm/drivers/char/specialix.c 2005-04-25 22:06:42.582749224 -0700 @@ -1987,10 +1987,9 @@ static inline int sx_set_serial_info(str func_enter(); /* - error = verify_area(VERIFY_READ, (void *) newinfo, sizeof(tmp)); - if (error) { + if (!access_ok(VERIFY_READ, (void *) newinfo, sizeof(tmp))) { func_exit(); - return error; + return -EFAULT; } */ if (copy_from_user(&tmp, newinfo, sizeof(tmp))) { @@ -2046,14 +2045,12 @@ static inline int sx_get_serial_info(str { struct serial_struct tmp; struct specialix_board *bp = port_Board(port); - // int error; func_enter(); /* - error = verify_area(VERIFY_WRITE, (void *) retinfo, sizeof(tmp)); - if (error) - return error; + if (!access_ok(VERIFY_WRITE, (void *) retinfo, sizeof(tmp))) + return -EFAULT; */ memset(&tmp, 0, sizeof(tmp)); diff -puN include/asm-frv/pgtable.h~misc-verify_area-cleanups include/asm-frv/pgtable.h --- 25/include/asm-frv/pgtable.h~misc-verify_area-cleanups 2005-04-25 22:06:42.562752264 -0700 +++ 25-akpm/include/asm-frv/pgtable.h 2005-04-25 22:06:42.583749072 -0700 @@ -349,9 +349,9 @@ static inline pmd_t *pmd_offset(pud_t *d /* * Define this to warn about kernel memory accesses that are - * done without a 'verify_area(VERIFY_WRITE,..)' + * done without a 'access_ok(VERIFY_WRITE,..)' */ -#undef TEST_VERIFY_AREA +#undef TEST_ACCESS_OK #define pte_present(x) (pte_val(x) & _PAGE_PRESENT) #define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0) diff -puN include/asm-i386/checksum.h~misc-verify_area-cleanups include/asm-i386/checksum.h --- 25/include/asm-i386/checksum.h~misc-verify_area-cleanups 2005-04-25 22:06:42.564751960 -0700 +++ 25-akpm/include/asm-i386/checksum.h 2005-04-25 22:06:42.584748920 -0700 @@ -33,7 +33,7 @@ asmlinkage unsigned int csum_partial_cop * passed in an incorrect kernel address to one of these functions. * * If you use these functions directly please don't forget the - * verify_area(). + * access_ok(). */ static __inline__ unsigned int csum_partial_copy_nocheck (const unsigned char *src, unsigned char *dst, diff -puN include/asm-i386/pgtable.h~misc-verify_area-cleanups include/asm-i386/pgtable.h --- 25/include/asm-i386/pgtable.h~misc-verify_area-cleanups 2005-04-25 22:06:42.565751808 -0700 +++ 25-akpm/include/asm-i386/pgtable.h 2005-04-25 22:06:42.584748920 -0700 @@ -193,9 +193,9 @@ extern unsigned long long __PAGE_KERNEL, /* * Define this if things work differently on an i386 and an i486: * it will (on an i486) warn about kernel memory accesses that are - * done without a 'verify_area(VERIFY_WRITE,..)' + * done without a 'access_ok(VERIFY_WRITE,..)' */ -#undef TEST_VERIFY_AREA +#undef TEST_ACCESS_OK /* The boot page tables (all created as a single array) */ extern unsigned long pg0[]; diff -puN include/asm-parisc/uaccess.h~misc-verify_area-cleanups include/asm-parisc/uaccess.h --- 25/include/asm-parisc/uaccess.h~misc-verify_area-cleanups 2005-04-25 22:06:42.566751656 -0700 +++ 25-akpm/include/asm-parisc/uaccess.h 2005-04-25 22:06:42.585748768 -0700 @@ -24,7 +24,7 @@ /* * Note that since kernel addresses are in a separate address space on - * parisc, we don't need to do anything for access_ok() or verify_area(). + * parisc, we don't need to do anything for access_ok(). * We just let the page fault handler do the right thing. This also means * that put_user is the same as __put_user, etc. */ diff -puN include/asm-sh64/checksum.h~misc-verify_area-cleanups include/asm-sh64/checksum.h --- 25/include/asm-sh64/checksum.h~misc-verify_area-cleanups 2005-04-25 22:06:42.567751504 -0700 +++ 25-akpm/include/asm-sh64/checksum.h 2005-04-25 22:06:42.585748768 -0700 @@ -34,7 +34,7 @@ asmlinkage unsigned int csum_partial(con * passed in an incorrect kernel address to one of these functions. * * If you use these functions directly please don't forget the - * verify_area(). + * access_ok(). */ diff -puN include/asm-sh/checksum.h~misc-verify_area-cleanups include/asm-sh/checksum.h --- 25/include/asm-sh/checksum.h~misc-verify_area-cleanups 2005-04-25 22:06:42.569751200 -0700 +++ 25-akpm/include/asm-sh/checksum.h 2005-04-25 22:06:42.585748768 -0700 @@ -42,7 +42,7 @@ asmlinkage unsigned int csum_partial_cop * passed in an incorrect kernel address to one of these functions. * * If you use these functions directly please don't forget the - * verify_area(). + * access_ok(). */ static __inline__ unsigned int csum_partial_copy_nocheck (const unsigned char *src, unsigned char *dst, diff -puN include/asm-sparc/uaccess.h~misc-verify_area-cleanups include/asm-sparc/uaccess.h --- 25/include/asm-sparc/uaccess.h~misc-verify_area-cleanups 2005-04-25 22:06:42.570751048 -0700 +++ 25-akpm/include/asm-sparc/uaccess.h 2005-04-25 22:06:42.586748616 -0700 @@ -18,7 +18,7 @@ #ifndef __ASSEMBLY__ -/* Sparc is not segmented, however we need to be able to fool verify_area() +/* Sparc is not segmented, however we need to be able to fool access_ok() * when doing system calls from kernel mode legitimately. * * "For historical reasons, these macros are grossly misnamed." -Linus diff -puN net/8021q/vlanproc.c~misc-verify_area-cleanups net/8021q/vlanproc.c --- 25/net/8021q/vlanproc.c~misc-verify_area-cleanups 2005-04-25 22:06:42.571750896 -0700 +++ 25-akpm/net/8021q/vlanproc.c 2005-04-25 22:06:42.587748464 -0700 @@ -23,7 +23,7 @@ #include /* return codes */ #include #include /* kmalloc(), kfree() */ -#include /* verify_area(), etc. */ +#include #include /* inline mem*, str* functions */ #include /* __initfunc et al. */ #include /* htons(), etc. */ diff -puN net/atm/common.c~misc-verify_area-cleanups net/atm/common.c --- 25/net/atm/common.c~misc-verify_area-cleanups 2005-04-25 22:06:42.573750592 -0700 +++ 25-akpm/net/atm/common.c 2005-04-25 22:06:42.587748464 -0700 @@ -12,7 +12,7 @@ #include /* SOL_SOCKET */ #include /* error codes */ #include -#include /* verify_area */ +#include #include #include /* struct timeval */ #include @@ -540,7 +540,7 @@ int vcc_sendmsg(struct kiocb *iocb, stru error = -EMSGSIZE; goto out; } - /* verify_area is done by net/socket.c */ + eff = (size+3) & ~3; /* align to word boundary */ prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); error = 0; diff -puN net/core/iovec.c~misc-verify_area-cleanups net/core/iovec.c --- 25/net/core/iovec.c~misc-verify_area-cleanups 2005-04-25 22:06:42.574750440 -0700 +++ 25-akpm/net/core/iovec.c 2005-04-25 22:06:42.588748312 -0700 @@ -33,7 +33,7 @@ * Verify iovec. The caller must ensure that the iovec is big enough * to hold the message iovec. * - * Save time not doing verify_area. copy_*_user will make this work + * Save time not doing access_ok. copy_*_user will make this work * in any case. */ diff -puN net/wanrouter/wanmain.c~misc-verify_area-cleanups net/wanrouter/wanmain.c --- 25/net/wanrouter/wanmain.c~misc-verify_area-cleanups 2005-04-25 22:06:42.575750288 -0700 +++ 25-akpm/net/wanrouter/wanmain.c 2005-04-25 22:06:42.588748312 -0700 @@ -48,8 +48,8 @@ #include #include #include /* support for loadable modules */ -#include /* kmalloc(), kfree() */ -#include /* verify_area(), etc. */ +#include /* kmalloc(), kfree() */ +#include #include /* inline mem*, str* functions */ #include /* htons(), etc. */ _