Victor Kamensky
d9981380b4
ARM: 8137/1: fix get_user BE behavior for target variable with size of 8 bytes
...
e38361d 'ARM: 8091/2: add get_user() support for 8 byte types' commit
broke V7 BE get_user call when target var size is 64 bit, but '*ptr' size
is 32 bit or smaller. e38361d changed type of __r2 from 'register
unsigned long' to 'register typeof(x) __r2 asm("r2")' i.e before the change
even when target variable size was 64 bit, __r2 was still 32 bit.
But after e38361d commit, for target var of 64 bit size, __r2 became 64
bit and now it should occupy 2 registers r2, and r3. The issue in BE case
that r3 register is least significant word of __r2 and r2 register is most
significant word of __r2. But __get_user_4 still copies result into r2 (most
significant word of __r2). Subsequent code copies from __r2 into x, but
for situation described it will pick up only garbage from r3 register.
Special __get_user_64t_(124) functions are introduced. They are similar to
corresponding __get_user_(124) function but result stored in r3 register
(lsw in case of 64 bit __r2 in BE image). Those function are used by
get_user macro in case of BE and target var size is 64bit.
Also changed __get_user_lo8 name into __get_user_32t_8 to get consistent
naming accross all cases.
Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
Suggested-by: Daniel Thompson <daniel.thompson@linaro.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2014-09-12 17:38:59 +01:00
..
ashldi3.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
ashrdi3.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
backtrace.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
bitops.h
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
bswapsdi2.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
call_with_stack.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
changebit.S
ARM: 7171/1: unwind: add unwind directives to bitops assembly macros
2011-11-26 21:58:53 +00:00
clear_user.S
ARM: 6110/1: Fix Thumb-2 kernel builds when UACCESS_WITH_MEMCPY is enabled
2010-05-08 10:45:26 +01:00
clearbit.S
ARM: 7171/1: unwind: add unwind directives to bitops assembly macros
2011-11-26 21:58:53 +00:00
copy_from_user.S
ARM: fix build error in arch/arm/kernel/process.c
2010-04-21 08:45:21 +01:00
copy_page.S
ARM: 5701/1: ARM: copy_page.S: take into account the size of the cache line
2009-09-15 22:07:02 +01:00
copy_template.S
ARM: 7990/1: asm: rename logical shift macros push pull into lspush lspull
2014-02-25 11:33:57 +00:00
copy_to_user.S
ARM: 6110/1: Fix Thumb-2 kernel builds when UACCESS_WITH_MEMCPY is enabled
2010-05-08 10:45:26 +01:00
csumipv6.S
[ARM] 5227/1: Add the ENDPROC declarations to the .S files
2008-09-01 12:06:34 +01:00
csumpartial.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
csumpartialcopy.S
[ARM] 5231/1: Do not save the frame pointer in the csum_partial_copy_* functions
2008-09-01 12:06:35 +01:00
csumpartialcopygeneric.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
csumpartialcopyuser.S
ARM: Fix csum_partial_copy_from_user()
2010-07-26 12:18:16 +01:00
delay-loop.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
delay.c
ARM: choose highest resolution delay timer
2014-06-16 12:48:07 -06:00
div64.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
ecard.S
ARM: remove unnecessary mach/hardware.h includes
2011-07-12 11:19:27 -05:00
findbit.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
floppydma.S
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
getuser.S
ARM: 8137/1: fix get_user BE behavior for target variable with size of 8 bytes
2014-09-12 17:38:59 +01:00
io-acorn.S
arch: remove direct definitions of KERN_<LEVEL> uses
2012-07-30 17:25:13 -07:00
io-readsb.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
io-readsl.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
io-readsw-armv3.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
io-readsw-armv4.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
io-writesb.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
io-writesl.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
io-writesw-armv3.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
io-writesw-armv4.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
lib1funcs.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
lshrdi3.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
Makefile
ARM: 7877/1: use built-in byte swap function
2013-12-29 12:32:45 +00:00
memchr.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
memcpy.S
Thumb-2: Implement the unified arch/arm/lib functions
2009-07-24 12:32:57 +01:00
memmove.S
ARM: 7990/1: asm: rename logical shift macros push pull into lspush lspull
2014-02-25 11:33:57 +00:00
memset.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
memzero.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
muldi3.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
putuser.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
setbit.S
ARM: 7171/1: unwind: add unwind directives to bitops assembly macros
2011-11-26 21:58:53 +00:00
strchr.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
strrchr.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
testchangebit.S
ARM: 7171/1: unwind: add unwind directives to bitops assembly macros
2011-11-26 21:58:53 +00:00
testclearbit.S
ARM: 7171/1: unwind: add unwind directives to bitops assembly macros
2011-11-26 21:58:53 +00:00
testsetbit.S
ARM: 7171/1: unwind: add unwind directives to bitops assembly macros
2011-11-26 21:58:53 +00:00
uaccess.S
ARM: 7990/1: asm: rename logical shift macros push pull into lspush lspull
2014-02-25 11:33:57 +00:00
uaccess_with_memcpy.c
ARM: 7858/1: mm: make UACCESS_WITH_MEMCPY huge page aware
2013-10-29 11:06:15 +00:00
ucmpdi2.S
ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+
2014-07-18 12:29:04 +01:00
xor-neon.c
ARM: 7835/2: fix modular build of xor_blocks() with NEON enabled
2013-09-09 15:24:47 +01:00