i hope this may help u (as Mulyadi also explained)
* access_ok: - Checks if a user space pointer is valid
63 * @type: Type of access: %VERIFY_READ or %VERIFY_WRITE. Note that 64 * %VERIFY_WRITE is a superset of %VERIFY_READ - if it is safe 65 * to write to a block, it is always safe to read from it. 66 * @addr: User space pointer to start of block to check 67 * @size: Size of block to check 68 * 69 * Context: User context only. This function may sleep. 70 * 71 * Checks if a pointer to a block of memory in user space is valid. 72 * 73 * Returns true (nonzero) if the memory block may be valid, false (zero) 74 * if it is definitely invalid. 75 * 76 * Note that, depending on architecture, this function probably just 77 * checks that the pointer is in the user space range - after calling 78 * this function, memory access functions may still return -EFAULT. 79 */ 80#define access_ok(type, addr, size) (likely(__range_not_ok(addr, size) == 0))