uaccess.h (222ca305c9fd39e5ed8104da25c09b2b79a516a8) | uaccess.h (12700c17fc286149324f92d6d380bc48e43f253d) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * User memory access support for Hexagon 4 * 5 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved. 6 */ 7 8#ifndef _ASM_UACCESS_H 9#define _ASM_UACCESS_H 10/* 11 * User space memory access functions 12 */ 13#include <asm/sections.h> 14 15/* | 1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * User memory access support for Hexagon 4 * 5 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved. 6 */ 7 8#ifndef _ASM_UACCESS_H 9#define _ASM_UACCESS_H 10/* 11 * User space memory access functions 12 */ 13#include <asm/sections.h> 14 15/* |
16 * access_ok: - Checks if a user space pointer is valid 17 * @addr: User space pointer to start of block to check 18 * @size: Size of block to check 19 * 20 * Context: User context only. This function may sleep if pagefaults are 21 * enabled. 22 * 23 * Checks if a pointer to a block of memory in user space is valid. 24 * 25 * Returns true (nonzero) if the memory block *may* be valid, false (zero) 26 * if it is definitely invalid. 27 * 28 */ 29#define uaccess_kernel() (get_fs().seg == KERNEL_DS.seg) 30#define user_addr_max() (uaccess_kernel() ? ~0UL : TASK_SIZE) 31 32static inline int __access_ok(unsigned long addr, unsigned long size) 33{ 34 unsigned long limit = TASK_SIZE; 35 36 return (size <= limit) && (addr <= (limit - size)); 37} 38#define __access_ok __access_ok 39 40/* | |
41 * When a kernel-mode page fault is taken, the faulting instruction 42 * address is checked against a table of exception_table_entries. 43 * Each entry is a tuple of the address of an instruction that may 44 * be authorized to fault, and the address at which execution should 45 * be resumed instead of the faulting instruction, so as to effect 46 * a workaround. 47 */ 48 --- 15 unchanged lines hidden --- | 16 * When a kernel-mode page fault is taken, the faulting instruction 17 * address is checked against a table of exception_table_entries. 18 * Each entry is a tuple of the address of an instruction that may 19 * be authorized to fault, and the address at which execution should 20 * be resumed instead of the faulting instruction, so as to effect 21 * a workaround. 22 */ 23 --- 15 unchanged lines hidden --- |