kernel_optimize_test/arch/nds32/lib/copy_page.S
Greentime Hu e3f4624388 nds32: Fix the symbols undefined issue by exporting them.
It broke the 'allmodconfig' build.
  LD      vmlinux
  SYSMAP  System.map
  Building modules, stage 2.
  MODPOST 5028 modules
ERROR: "flush_dcache_page" [net/sunrpc/xprtrdma/rpcrdma.ko] undefined!
ERROR: "empty_zero_page" [net/ceph/libceph.ko] undefined!
ERROR: "save_stack_trace" [kernel/backtracetest.ko] undefined!
ERROR: "clear_page" [fs/ocfs2/dlm/ocfs2_dlm.ko] undefined!
ERROR: "copy_page" [fs/nilfs2/nilfs2.ko] undefined!
...

Signed-off-by: Greentime Hu <greentime@andestech.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
2018-05-23 13:26:20 +08:00

41 lines
748 B
ArmAsm

// SPDX-License-Identifier: GPL-2.0
// Copyright (C) 2005-2017 Andes Technology Corporation
#include <linux/linkage.h>
#include <asm/export.h>
#include <asm/page.h>
.text
ENTRY(copy_page)
pushm $r2, $r10
movi $r2, PAGE_SIZE >> 5
.Lcopy_loop:
lmw.bim $r3, [$r1], $r10
smw.bim $r3, [$r0], $r10
subi45 $r2, #1
bnez38 $r2, .Lcopy_loop
popm $r2, $r10
ret
ENDPROC(copy_page)
EXPORT_SYMBOL(copy_page)
ENTRY(clear_page)
pushm $r1, $r9
movi $r1, PAGE_SIZE >> 5
movi55 $r2, #0
movi55 $r3, #0
movi55 $r4, #0
movi55 $r5, #0
movi55 $r6, #0
movi55 $r7, #0
movi55 $r8, #0
movi55 $r9, #0
.Lclear_loop:
smw.bim $r2, [$r0], $r9
subi45 $r1, #1
bnez38 $r1, .Lclear_loop
popm $r1, $r9
ret
ENDPROC(clear_page)
EXPORT_SYMBOL(clear_page)