powerpc/lib: Use patch_site to patch copy_32 functions once cache is enabled
The symbol memcpy_nocache_branch defined in order to allow patching of memset function once cache is enabled leads to confusing reports by perf tool. Using the new patch_site functionality solves this issue. Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
此提交包含在:
@@ -13,6 +13,7 @@
|
||||
#include <asm/errno.h>
|
||||
#include <asm/ppc_asm.h>
|
||||
#include <asm/export.h>
|
||||
#include <asm/code-patching-asm.h>
|
||||
|
||||
#define COPY_16_BYTES \
|
||||
lwz r7,4(r4); \
|
||||
@@ -107,8 +108,8 @@ _GLOBAL(memset)
|
||||
* Skip optimised bloc until cache is enabled. Will be replaced
|
||||
* by 'bne' during boot to use normal procedure if r4 is not zero
|
||||
*/
|
||||
_GLOBAL(memset_nocache_branch)
|
||||
b 2f
|
||||
5: b 2f
|
||||
patch_site 5b, patch__memset_nocache
|
||||
|
||||
clrlwi r7,r6,32-LG_CACHELINE_BYTES
|
||||
add r8,r7,r5
|
||||
@@ -168,7 +169,9 @@ _GLOBAL(memmove)
|
||||
/* fall through */
|
||||
|
||||
_GLOBAL(memcpy)
|
||||
b generic_memcpy
|
||||
1: b generic_memcpy
|
||||
patch_site 1b, patch__memcpy_nocache
|
||||
|
||||
add r7,r3,r5 /* test if the src & dst overlap */
|
||||
add r8,r4,r5
|
||||
cmplw 0,r4,r7
|
||||
|
新增問題並參考
封鎖使用者