summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/x8664_ksyms_64.c
diff options
context:
space:
mode:
authorFenghua Yu <fenghua.yu@intel.com>2012-05-25 03:19:45 +0200
committerH. Peter Anvin <hpa@linux.intel.com>2012-06-30 00:33:34 +0200
commit954e482bde20b0e208fd4d34ef26e10afd194600 (patch)
treea98702fdde1d47b31851cee7b81849dec8b91f09 /arch/x86/kernel/x8664_ksyms_64.c
parentx86/alternatives: Use atomic_xchg() instead atomic_dec_and_test() for stop_ma... (diff)
downloadlinux-954e482bde20b0e208fd4d34ef26e10afd194600.tar.xz
linux-954e482bde20b0e208fd4d34ef26e10afd194600.zip
x86/copy_user_generic: Optimize copy_user_generic with CPU erms feature
According to Intel 64 and IA-32 SDM and Optimization Reference Manual, beginning with Ivybridge, REG string operation using MOVSB and STOSB can provide both flexible and high-performance REG string operations in cases like memory copy. Enhancement availability is indicated by CPUID.7.0.EBX[9] (Enhanced REP MOVSB/ STOSB). If CPU erms feature is detected, patch copy_user_generic with enhanced fast string version of copy_user_generic. A few new macros are defined to reduce duplicate code in ALTERNATIVE and ALTERNATIVE_2. Signed-off-by: Fenghua Yu <fenghua.yu@intel.com> Link: http://lkml.kernel.org/r/1337908785-14015-1-git-send-email-fenghua.yu@intel.com Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/kernel/x8664_ksyms_64.c')
-rw-r--r--arch/x86/kernel/x8664_ksyms_64.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c
index 9796c2f3d074..6020f6f5927c 100644
--- a/arch/x86/kernel/x8664_ksyms_64.c
+++ b/arch/x86/kernel/x8664_ksyms_64.c
@@ -28,6 +28,7 @@ EXPORT_SYMBOL(__put_user_8);
EXPORT_SYMBOL(copy_user_generic_string);
EXPORT_SYMBOL(copy_user_generic_unrolled);
+EXPORT_SYMBOL(copy_user_enhanced_fast_string);
EXPORT_SYMBOL(__copy_user_nocache);
EXPORT_SYMBOL(_copy_from_user);
EXPORT_SYMBOL(_copy_to_user);