kernel-hacking-2024-linux-s.../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
..
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
bitops.h [S390] use inline assembly contraints available with gcc 3.3.3 2010-02-26 22:37:30 +01:00
bitsperlong.h
bug.h panic: Allow warnings to set different taint flags 2010-05-19 08:36:48 +01:00
bugs.h
byteorder.h
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
checksum.h
chpid.h
chsc.h
cio.h tree-wide: Assorted spelling fixes 2010-02-09 11:13:56 +01:00
cmb.h
compat.h compat: Make compat_alloc_user_space() incorporate the access_ok() 2010-09-14 16:08:45 -07:00
cpcmd.h
cpu.h
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
debug.h
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
ftrace.h
futex.h
hardirq.h
hugetlb.h [S390] fix tlb flushing vs. concurrent /proc accesses 2010-08-24 09:26:34 +02:00
idals.h
io.h
ioctl.h
ioctls.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
ipcbuf.h
ipl.h
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
itcw.h
Kbuild archs: replace unifdef-y with header-y 2010-08-14 22:26:51 +02:00
kdebug.h
kexec.h
kmap_types.h
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_virtio.h
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
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
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
perf_event.h
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
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
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
sclp.h
scsw.h
seccomp.h
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
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
suspend.h
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
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
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
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
xor.h
zcrypt.h