summaryrefslogtreecommitdiffstats
path: root/arch/arm/lib/Makefile
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2005-11-01 20:52:24 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2005-11-01 20:52:24 +0100
commitfadab0943d1c5b652a66858bb99b204fedaad96b (patch)
treeae8f83cd0b6c97ee2120688f3e4f4cfd431b0c3e /arch/arm/lib/Makefile
parent[ARM] 2947/1: copy template with new memcpy/memmove (diff)
downloadlinux-fadab0943d1c5b652a66858bb99b204fedaad96b.tar.xz
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/Makefile16
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