android_kernel_xiaomi_sm8350/arch/sparc/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
..
agp.h agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
apb.h
apc.h
asi.h sparc,leon: Redefine MMU register access asi if CONFIG_LEON 2009-08-17 18:32:09 -07:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asm.h
asmmacro.h
atomic_32.h atomic_t: Cast to volatile when accessing atomic variables 2010-05-17 07:57:27 -07:00
atomic_64.h sparc64: Really fix atomic64_t interface types. 2010-08-17 21:44:13 -07:00
atomic.h
auxio_32.h
auxio_64.h
auxio.h
auxvec.h
backoff.h sparc64: Make lock backoff really a NOP on UP builds. 2010-08-18 22:53:26 -07:00
bbc.h
bitext.h
bitops_32.h
bitops_64.h bitops: Optimize hweight() by making use of compile-time evaluation 2010-04-06 15:52:11 -07:00
bitops.h
bitsperlong.h
btext.h sparc64: Faster early-boot framebuffer console. 2009-11-27 17:33:43 -08:00
btfixup.h
bug.h
bugs.h
byteorder.h
cache.h sparc: remove homegrown L1_CACHE_ALIGN macro 2010-06-29 00:38:02 -07:00
cacheflush_32.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
cacheflush_64.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
cacheflush.h
chafsr.h
checksum_32.h
checksum_64.h
checksum.h
chmctrl.h
clock.h
cmt.h
compat_signal.h
compat.h compat: Make compat_alloc_user_space() incorporate the access_ok() 2010-09-14 16:08:45 -07:00
contregs.h
cpudata_32.h
cpudata_64.h sparc64: Use a seperate counter for timer interrupts and NMI checks, like x86. 2010-04-12 22:37:07 -07:00
cpudata.h
cputime.h
current.h
cypress.h
dcr.h
dcu.h
delay_32.h
delay_64.h
delay.h
device.h of: remove asm/of_device.h 2010-07-24 09:57:52 -06:00
display7seg.h
div64.h
dma-mapping.h dma-mapping: remove dma_is_consistent API 2010-08-11 08:59:21 -07:00
dma.h
ebus_dma.h
ecc.h
eeprom.h
elf_32.h elf: kill USE_ELF_CORE_DUMP 2009-12-16 07:20:12 -08:00
elf_64.h sparc: TIF_ABI_PENDING bit removal 2010-01-29 08:22:01 -08:00
elf.h
emergency-restart.h
envctrl.h
errno.h
estate.h
fb.h sparc: Really fix "console=" for serial consoles. 2010-08-16 12:26:09 -07:00
fbio.h tree-wide: s/widht/width/g typo in comments 2010-02-05 12:22:42 +01:00
fcntl.h fix up O_SYNC comments 2009-12-17 11:03:24 -05:00
fhc.h
fixmap.h
floppy_32.h
floppy_64.h of/device: Replace of_device with platform_device in includes and core code 2010-07-24 09:58:21 -06:00
floppy.h
fpumacro.h
ftrace.h
futex_32.h
futex_64.h
futex.h
gpio.h
hardirq_32.h sparc32: convert to asm-generic/hardirq.h 2009-10-01 13:45:13 -07:00
hardirq_64.h
hardirq.h
head_32.h
head_64.h
head.h
highmem.h kmap_atomic: make kunmap_atomic() harder to misuse 2010-08-09 20:44:54 -07:00
hugetlb.h
hvtramp.h
hw_irq.h
hypervisor.h
ide.h
idprom.h
intr_queue.h
io_32.h sparc: Provide io{read,write}{16,32}be(). 2010-03-03 02:30:37 -08:00
io_64.h sparc: Provide io{read,write}{16,32}be(). 2010-03-03 02:30:37 -08:00
io-unit.h
io.h
ioctl.h
ioctls.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
iommu_32.h
iommu_64.h
iommu.h
ipcbuf.h
irq_32.h sparc32: convert to asm-generic/hardirq.h 2009-10-01 13:45:13 -07:00
irq_64.h debug lockups: Improve lockup detection, fix generic arch fallback 2009-08-03 09:56:52 +02:00
irq_regs.h
irq.h
irqflags_32.h
irqflags_64.h sparc64: Add some more commentary to __raw_local_irq_save() 2010-04-13 01:50:43 -07:00
irqflags.h
jsflash.h
Kbuild
kdebug_32.h
kdebug_64.h
kdebug.h
kgdb.h
kmap_types.h
kprobes.h
ldc.h
leon_amba.h sparc,leon: CONFIG_SPARC_LEON option and leon specific files. 2009-08-17 18:32:09 -07:00
leon.h Added sparc_leon3_snooping_enabled() and converted extern inline to static inline 2009-11-16 02:54:09 -08:00
linkage.h
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
local.h
lsu.h
machines.h sparc,leon: Introduce the sparc-leon CPU type. 2009-08-17 18:32:10 -07:00
mbus.h
mc146818rtc_32.h
mc146818rtc_64.h
mc146818rtc.h
mdesc.h
memblock.h lmb: rename to memblock 2010-07-14 17:14:00 +10:00
memctrl.h
memreg.h
mman.h mm: add MAP_HUGETLB for mmaping pseudo-anonymous huge page regions 2009-09-22 07:17:41 -07:00
mmu_32.h
mmu_64.h
mmu_context_32.h
mmu_context_64.h
mmu_context.h
mmu.h
mmzone.h
module.h
mpmbox.h
msgbuf.h
msi.h
mutex.h
mxcc.h
nmi.h sparc64: Initial hw perf counter support. 2009-09-10 06:28:20 -07:00
ns87303.h
obio.h
openprom.h
openpromio.h
oplib_32.h
oplib_64.h sparc64: Get rid of indirect p1275 PROM call buffer. 2010-08-23 23:10:57 -07:00
oplib.h
page_32.h sparc32: Fix page_to_phys(). 2010-01-14 03:14:53 -08:00
page_64.h
page.h
param.h sparc: Simplify param.h by simply including <asm-generic/param.h> 2010-01-12 02:46:16 -08:00
parport.h sparc64: Add missing ID to parport probing code. 2010-08-08 22:07:22 -07:00
pbm.h
pci_32.h pci-dma: sparc: use include/linux/pci-dma.h 2010-03-12 15:52:41 -08:00
pci_64.h pci-dma: sparc: use include/linux/pci-dma.h 2010-03-12 15:52:41 -08:00
pci.h pci-dma: add linux/pci-dma.h to linux/pci.h 2010-03-12 15:52:42 -08:00
pcic.h
pcr.h
percpu_32.h
percpu_64.h
percpu.h
perf_event.h sparc64: Fix perf_arch_get_caller_regs(). 2010-08-08 22:07:36 -07:00
perfctr.h sparc64: Kill off old sys_perfctr system call and state. 2010-03-03 08:08:49 -08:00
pgalloc_32.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
pgalloc_64.h
pgalloc.h
pgtable_32.h sparc32: Kill none_mask, it's bogus. 2010-05-25 23:36:31 -07:00
pgtable_64.h MM: Pass a PTE pointer to update_mmu_cache() rather than the PTE itself 2010-02-20 16:41:46 +00:00
pgtable.h
pgtsrmmu.h sparc,leon: Introduce the sparc-leon CPU type. 2009-08-17 18:32:10 -07:00
pgtsun4.h
pgtsun4c.h
pil.h
poll.h
posix_types.h
processor_32.h
processor_64.h
processor.h
prom.h of: Provide default of_node_to_nid() implementation. 2010-07-30 00:03:58 -06:00
psr.h
psrcompat.h
pstate.h
ptrace.h
resource.h
ross.h
rwsem.h sparc64: Make rwsems 64-bit. 2010-08-17 22:49:26 -07:00
sbi.h
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
scratchpad.h
seccomp.h
sections.h
sembuf.h
serial.h
setup.h
sfafsr.h
sfp-machine_32.h
sfp-machine_64.h
sfp-machine.h
shmbuf.h
shmparam_32.h
shmparam_64.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
smp_32.h sparc,leon: Sparc-Leon SMP support 2009-11-02 04:19:42 -08:00
smp_64.h cpumask: remove arch_send_call_function_ipi 2009-09-24 09:34:47 +09:30
smp.h
smpprim.h
socket.h net: Generalize socket rx gap / receive queue overflow cmsg 2009-10-12 13:26:31 -07:00
sockios.h
sparsemem.h
spinlock_32.h locking: Convert raw_rwlock functions to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock_64.h locking: Convert raw_rwlock functions to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock.h
spitfire.h
stacktrace.h
starfire.h
stat.h sparc: Fix use of uid16_t and gid16_t in asm/stat.h 2010-03-27 08:36:18 -07:00
statfs.h
string_32.h sparc: Stop trying to be so fancy and use __builtin_{memcpy,memset}() 2009-12-10 23:32:10 -08:00
string_64.h sparc: Stop trying to be so fancy and use __builtin_{memcpy,memset}() 2009-12-10 23:32:10 -08:00
string.h
sunbpp.h
swab.h
swift.h
syscall.h tracing: Unify arch_syscall_addr() implementations 2010-02-17 13:07:21 +01:00
syscalls.h
sysen.h
system_32.h sparc,leon: Introduce the sparc-leon CPU type. 2009-08-17 18:32:10 -07:00
system_64.h sparc64: Fill a missing delay slot. 2010-08-19 14:15:32 -07:00
system.h
termbits.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
termios.h
thread_info_32.h add descriptive comment for TIF_MEMDIE task flag declaration. 2010-05-14 11:13:27 +02:00
thread_info_64.h add descriptive comment for TIF_MEMDIE task flag declaration. 2010-05-14 11:13:27 +02:00
thread_info.h
timer_32.h
timer_64.h
timer.h
timex_32.h sparc: convert to arch_gettimeoffset() 2010-01-15 01:34:28 -08:00
timex_64.h
timex.h
tlb_32.h
tlb_64.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
tlb.h
tlbflush_32.h
tlbflush_64.h
tlbflush.h
topology_32.h
topology_64.h sparc: cpumask_of_node() should handle -1 as a node 2010-01-20 19:04:42 -08:00
topology.h
trap_block.h
traps.h
tsb.h
tsunami.h
ttable.h
turbosparc.h
types.h SPARC: fix duplicate declaration 2009-08-16 18:25:00 -07:00
uaccess_32.h sparc: Kill user copy check code. 2010-08-09 00:45:46 -07:00
uaccess_64.h sparc: Kill user copy check code. 2010-08-09 00:45:46 -07:00
uaccess.h
uctx.h
unaligned.h
unistd.h sparc: Hook up new fanotify and prlimit64 syscalls. 2010-08-16 15:04:29 -07:00
upa.h
user.h
utrap.h
vac-ops.h
vaddrs.h
vga.h
viking.h
vio.h BUILD_BUG_ON(): fix it and a couple of bogus uses of it 2009-09-23 07:39:29 -07:00
visasm.h
watchdog.h
winmacro.h
xor_32.h
xor_64.h
xor.h