linux/arch/s390/include/asm
H. Peter Anvin c41d68a513 compat: Make compat_alloc_user_space() incorporate the access_ok()
compat_alloc_user_space() expects the caller to independently call
access_ok() to verify the returned area.  A missing call could
introduce problems on some architectures.

This patch incorporates the access_ok() check into
compat_alloc_user_space() and also adds a sanity check on the length.
The existing compat_alloc_user_space() implementations are renamed
arch_compat_alloc_user_space() and are used as part of the
implementation of the new global function.

This patch assumes NULL will cause __get_user()/__put_user() to either
fail or access userspace on all architectures.  This should be
followed by checking the return value of compat_access_user_space()
for NULL in the callers, at which time the access_ok() in the callers
can also be removed.

Reported-by: Ben Hawkes <hawkes@sota.gen.nz>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Chris Metcalf <cmetcalf@tilera.com>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Tony Luck <tony.luck@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Helge Deller <deller@gmx.de>
Cc: James Bottomley <jejb@parisc-linux.org>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: <stable@kernel.org>
2010-09-14 16:08:45 -07:00
..
Kbuild archs: replace unifdef-y with header-y 2010-08-14 22:26:51 +02:00
airq.h
appldata.h
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic.h [S390] atomic: implement atomic64_dec_if_positive 2010-05-26 23:26:29 +02:00
auxvec.h [S390] introduce vdso on s390 2008-12-25 13:38:55 +01:00
bitops.h [S390] use inline assembly contraints available with gcc 3.3.3 2010-02-26 22:37:30 +01:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bug.h panic: Allow warnings to set different taint flags 2010-05-19 08:36:48 +01:00
bugs.h
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h Rename .data.read_mostly to .data..read_mostly. 2010-03-03 11:26:00 +01:00
cacheflush.h block: add helpers to run flush_dcache_page() against a bio and a request's pages 2009-11-26 09:16:19 +01:00
ccwdev.h [S390] cio: CHSC SIOSL Support 2010-08-09 18:12:53 +02:00
ccwgroup.h [S390] pm: ccwgroup bus power management callbacks 2009-06-16 10:31:08 +02:00
checksum.h [S390] convert/optimize csum_fold() to C 2009-09-11 10:29:43 +02:00
chpid.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
chsc.h [S390] cio: move scsw helper functions to header file 2009-09-11 10:29:36 +02:00
cio.h tree-wide: Assorted spelling fixes 2010-02-09 11:13:56 +01:00
cmb.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
compat.h compat: Make compat_alloc_user_space() incorporate the access_ok() 2010-09-14 16:08:45 -07:00
cpcmd.h
cpu.h [S390] Get rid of cpuid.h header file. 2009-09-11 10:29:56 +02:00
cputime.h [S390] idle time accounting vs. machine checks 2010-05-17 10:00:15 +02:00
crw.h [S390] cio: wait for channel report 2010-02-26 22:37:29 +01:00
current.h
dasd.h [S390] dasd: add large volume support 2009-03-26 15:24:05 +01:00
debug.h [S390] s390dbf: Add description for usage of "%s" in sprintf events 2009-09-11 10:29:53 +02:00
delay.h [S390] Provide arch specific mdelay implementation. 2009-10-06 10:35:08 +02:00
device.h
diag.h
div64.h
dma.h
ebcdic.h
elf.h elf: kill USE_ELF_CORE_DUMP 2009-12-16 07:20:12 -08:00
emergency-restart.h
errno.h
etr.h [S390] use inline assembly contraints available with gcc 3.3.3 2010-02-26 22:37:30 +01:00
extmem.h
fb.h
fcntl.h
fcx.h [S390] cio: update sac values 2008-12-25 13:39:06 +01:00
ftrace.h [S390] ftrace: add function graph tracer support 2009-06-12 10:27:39 +02:00
futex.h
hardirq.h [S390] remove unused irq_cpustat_t defintion 2009-09-11 10:29:48 +02:00
hugetlb.h [S390] fix tlb flushing vs. concurrent /proc accesses 2010-08-24 09:26:34 +02:00
idals.h [S390] dasd: add High Performance FICON support 2009-03-26 15:24:05 +01:00
io.h
ioctl.h
ioctls.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
ipcbuf.h
ipl.h [S390] kernel: Append scpdata to kernel boot command line 2009-09-11 10:29:46 +02:00
irq.h
irq_regs.h
irqflags.h [S390] use inline assembly contraints available with gcc 3.3.3 2010-02-26 22:37:30 +01:00
isc.h [S390] zcrypt: Use of Thin Interrupts 2008-12-25 13:38:57 +01:00
itcw.h
kdebug.h
kexec.h
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kprobes.h
kvm.h KVM: s390: Make psw available on all exits, not just a subset 2009-12-03 09:32:25 +02:00
kvm_host.h KVM: Remove unnecessary divide operations 2010-08-01 10:47:30 +03:00
kvm_para.h KVM: Add __KERNEL__ guards to exported headers 2009-09-10 10:46:48 +03:00
kvm_virtio.h [S390] kvm: use console_initcall() to initialize s390 virtio console 2009-09-11 10:29:52 +02:00
linkage.h
local.h
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
lowcore.h [S390] virtualization aware cpu measurement 2010-05-17 10:00:15 +02:00
mathemu.h
mman.h mm: remove duplicate asm/mman.h files 2009-09-22 07:17:42 -07:00
mmu.h [S390] fix tlb flushing vs. concurrent /proc accesses 2010-08-24 09:26:34 +02:00
mmu_context.h [S390] fix tlb flushing vs. concurrent /proc accesses 2010-08-24 09:26:34 +02:00
module.h
monwriter.h
msgbuf.h
mutex.h
nmi.h [S390] split/move machine check handler code 2009-03-26 15:24:10 +01:00
page.h [S390] cio: fix storage key handling 2010-02-26 22:37:30 +01:00
param.h [S390] Have param.h simply include <asm-generic/param.h>. 2010-01-04 09:05:58 +01:00
pci.h
percpu.h s390: switch to dynamic percpu allocator 2009-06-24 15:13:53 +09:00
perf_event.h perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
pgalloc.h [S390] Improve address space mode selection. 2009-12-07 12:51:33 +01:00
pgtable.h [S390] fix tlb flushing vs. concurrent /proc accesses 2010-08-24 09:26:34 +02:00
poll.h
posix_types.h [S390] asm-s390/posix_types.h: drop __USE_ALL usage 2009-01-09 12:15:04 +01:00
processor.h [S390] use inline assembly contraints available with gcc 3.3.3 2010-02-26 22:37:30 +01:00
ptrace.h [S390] add breaking event address for user space 2010-05-17 10:00:15 +02:00
qdio.h [SCSI] zfcp: Enable data division support for FCP devices 2010-07-28 09:48:55 -05:00
qeth.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
reset.h
resource.h
rwsem.h [S390] use inline assembly contraints available with gcc 3.3.3 2010-02-26 22:37:30 +01:00
s390_ext.h
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
schid.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
sclp.h
scsw.h [S390] cio: move scsw helper functions to header file 2009-09-11 10:29:36 +02:00
seccomp.h [S390] secure computing arch backend 2009-06-12 10:27:31 +02:00
sections.h
segment.h
sembuf.h
setup.h [S390] virtualization aware cpu measurement 2010-05-17 10:00:15 +02:00
sfp-machine.h
sfp-util.h Revert "endian: #define __BYTE_ORDER" 2010-05-26 08:30:15 -07:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
sigp.h [S390] spinlock: check virtual cpu running status 2010-02-26 22:37:31 +01:00
smp.h [S390] spinlock: check virtual cpu running status 2010-02-26 22:37:31 +01:00
socket.h net: Generalize socket rx gap / receive queue overflow cmsg 2009-10-12 13:26:31 -07:00
sockios.h [S390] use generic sockios.h header file 2009-12-07 12:51:37 +01:00
sparsemem.h
spinlock.h [S390] use inline assembly contraints available with gcc 3.3.3 2010-02-26 22:37:30 +01:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
stat.h
statfs.h add f_flags to struct statfs(64) 2010-08-09 16:48:44 -04:00
string.h [S390] use compiler builtin versions of strlen/strcpy/strcat 2009-03-26 15:24:24 +01:00
suspend.h [S390] s390: hibernation support for s390 2009-06-16 10:31:22 +02:00
swab.h [S390] use inline assembly contraints available with gcc 3.3.3 2010-02-26 22:37:30 +01:00
syscall.h tracing: Unify arch_syscall_addr() implementations 2010-02-17 13:07:21 +01:00
sysinfo.h [S390] sysinfo: fix SYSIB 3,2,2 structure 2010-02-26 22:37:31 +01:00
system.h [S390] improve irq tracing code in entry[64].S 2010-05-17 10:00:15 +02:00
tape390.h
termbits.h [S390] use generic termbits.h header file 2009-12-07 12:51:37 +01:00
termios.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
thread_info.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-05-20 09:20:59 -07:00
timer.h [S390] extend virtual timer interface by mod_virt_timer_periodic 2009-04-14 15:37:23 +02:00
timex.h [S390] s390_hypfs: Add new attributes 2010-05-17 10:00:17 +02:00
tlb.h [S390] fix tlb flushing vs. concurrent /proc accesses 2010-08-24 09:26:34 +02:00
tlbflush.h [S390] fix tlb flushing vs. concurrent /proc accesses 2010-08-24 09:26:34 +02:00
topology.h [S390] topology: use default MC domain initializer 2010-08-09 18:12:54 +02:00
types.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
uaccess.h [S390] uaccess: implement strict user copy checks 2010-02-26 22:37:29 +01:00
ucontext.h [S390] 64-bit register support for 31-bit processes 2009-10-06 10:35:10 +02:00
unaligned.h
unistd.h [S390] wire up prlimit64 and fanotify* syscalls 2010-08-13 10:06:54 +02:00
user.h
vdso.h [S390] vdso: use ntp adjusted clock multiplier 2010-04-22 17:17:19 +02:00
vtoc.h [S390] dasd: add large volume support 2009-03-26 15:24:05 +01:00
xor.h
zcrypt.h