aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/lib
diff options
context:
space:
mode:
authorMarkos Chandras <markos.chandras@imgtec.com>2014-01-17 06:36:16 -0500
committerRalf Baechle <ralf@linux-mips.org>2014-03-26 18:09:17 -0400
commit6f85cebe49a4cd25a381f356ad51ccc376d00a7c (patch)
treed24ed8dd25c014de73d123cc1eb9a5dee6f93c4c /arch/mips/lib
parente89fb56c8bcf5514cfe7abd7a3dda9e6007b7238 (diff)
MIPS: lib: csum_partial: Add EVA support
Use EVA specific functions to read and write data to user address space. Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Diffstat (limited to 'arch/mips/lib')
-rw-r--r--arch/mips/lib/csum_partial.S25
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/mips/lib/csum_partial.S b/arch/mips/lib/csum_partial.S
index 62c8768a59ce..2e4825e48388 100644
--- a/arch/mips/lib/csum_partial.S
+++ b/arch/mips/lib/csum_partial.S
@@ -352,6 +352,19 @@ LEAF(csum_partial)
352 .section __ex_table,"a"; \ 352 .section __ex_table,"a"; \
353 PTR 9b, handler; \ 353 PTR 9b, handler; \
354 .previous; \ 354 .previous; \
355 /* This is enabled in EVA mode */ \
356 .else; \
357 /* If loading from user or storing to user */ \
358 .if ((\from == USEROP) && (type == LD_INSN)) || \
359 ((\to == USEROP) && (type == ST_INSN)); \
3609: __BUILD_EVA_INSN(insn##e, reg, addr); \
361 .section __ex_table,"a"; \
362 PTR 9b, handler; \
363 .previous; \
364 .else; \
365 /* EVA without exception */ \
366 insn reg, addr; \
367 .endif; \
355 .endif 368 .endif
356 369
357#undef LOAD 370#undef LOAD
@@ -795,7 +808,19 @@ LEAF(csum_partial)
795 .endm 808 .endm
796 809
797LEAF(__csum_partial_copy_kernel) 810LEAF(__csum_partial_copy_kernel)
811#ifndef CONFIG_EVA
798FEXPORT(__csum_partial_copy_to_user) 812FEXPORT(__csum_partial_copy_to_user)
799FEXPORT(__csum_partial_copy_from_user) 813FEXPORT(__csum_partial_copy_from_user)
814#endif
800__BUILD_CSUM_PARTIAL_COPY_USER LEGACY_MODE USEROP USEROP 1 815__BUILD_CSUM_PARTIAL_COPY_USER LEGACY_MODE USEROP USEROP 1
801END(__csum_partial_copy_kernel) 816END(__csum_partial_copy_kernel)
817
818#ifdef CONFIG_EVA
819LEAF(__csum_partial_copy_to_user)
820__BUILD_CSUM_PARTIAL_COPY_USER EVA_MODE KERNELOP USEROP 0
821END(__csum_partial_copy_to_user)
822
823LEAF(__csum_partial_copy_from_user)
824__BUILD_CSUM_PARTIAL_COPY_USER EVA_MODE USEROP KERNELOP 0
825END(__csum_partial_copy_from_user)
826#endif