diff options
author | Nicolas Pitre <nico@cam.org> | 2005-11-01 19:52:24 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-11-01 19:52:24 +0000 |
commit | fadab0943d1c5b652a66858bb99b204fedaad96b (patch) | |
tree | ae8f83cd0b6c97ee2120688f3e4f4cfd431b0c3e /arch/arm/lib/Makefile | |
parent | 7549423000fc38d39a8b81c601dea0332c113a42 (diff) | |
download | blackbird-op-linux-fadab0943d1c5b652a66858bb99b204fedaad96b.tar.gz blackbird-op-linux-fadab0943d1c5b652a66858bb99b204fedaad96b.zip |
[ARM] 2948/1: new preemption safe copy_{to|from}_user implementation
Patch from Nicolas Pitre
This patch provides a preemption safe implementation of copy_to_user
and copy_from_user based on the copy template also used for memcpy.
It is enabled unconditionally when CONFIG_PREEMPT=y. Otherwise if the
configured architecture is not ARMv3 then it is enabled as well as it
gives better performances at least on StrongARM and XScale cores. If
ARMv3 is not too affected or if it doesn't matter too much then
uaccess.S could be removed altogether.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/lib/Makefile')
-rw-r--r-- | arch/arm/lib/Makefile | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile index 8f9770f1af19..391f3ab3ff32 100644 --- a/arch/arm/lib/Makefile +++ b/arch/arm/lib/Makefile @@ -9,13 +9,25 @@ lib-y := backtrace.o changebit.o csumipv6.o csumpartial.o \ copy_page.o delay.o findbit.o memchr.o memcpy.o \ memmove.o memset.o memzero.o setbit.o \ strncpy_from_user.o strnlen_user.o \ - strchr.o strrchr.o testchangebit.o \ - testclearbit.o testsetbit.o uaccess.o \ + strchr.o strrchr.o \ + testchangebit.o testclearbit.o testsetbit.o \ getuser.o putuser.o clear_user.o \ ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \ ucmpdi2.o lib1funcs.o div64.o sha1.o \ io-readsb.o io-writesb.o io-readsl.o io-writesl.o +# the code in uaccess.S is not preemption safe and +# probably faster on ARMv3 only +ifeq ($CONFIG_PREEMPT,y) + lib-y += copy_from_user.o copy_to_user.o +else +ifneq ($(CONFIG_CPU_32v3),y) + lib-y += copy_from_user.o copy_to_user.o +else + lib-y += uaccess.o +endif +endif + ifeq ($(CONFIG_CPU_32v3),y) lib-y += io-readsw-armv3.o io-writesw-armv3.o else |