diff options
author | Jan Beulich <JBeulich@novell.com> | 2009-12-18 16:16:03 +0000 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-12-30 11:57:32 +0100 |
commit | 7269e8812a59f74fb1ce134465d0bcf5683b93a1 (patch) | |
tree | cfa0022a98907232edc8ffbe145926a272da14f1 /arch/x86/lib/msr-reg-export.c | |
parent | 1b1d9258181bae199dc940f4bd0298126b9a73d9 (diff) |
x86-64: Modify memcpy()/memset() alternatives mechanism
In order to avoid unnecessary chains of branches, rather than
implementing memcpy()/memset()'s access to their alternative
implementations via a jump, patch the (larger) original function
directly.
The memcpy() part of this is slightly subtle: while alternative
instruction patching does itself use memcpy(), with the
replacement block being less than 64-bytes in size the main loop
of the original function doesn't get used for copying memcpy_c()
over memcpy(), and hence we can safely write over its beginning.
Also note that the CFI annotations are fine for both variants of
each of the functions.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Cc: Nick Piggin <npiggin@suse.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
LKML-Reference: <4B2BB8D30200007800026AF2@vpn.id2.novell.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/lib/msr-reg-export.c')
0 files changed, 0 insertions, 0 deletions