Module Name: src Committed By: ryo Date: Mon Sep 10 17:25:15 UTC 2018
Modified Files: src/sys/arch/aarch64/aarch64: copyinout.S trap.c Log Message: changed kcopy() to asm to avoid replacement memcpy() to kasan_memcpy() when defined KASAN. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/arch/aarch64/aarch64/copyinout.S cvs rdiff -u -r1.8 -r1.9 src/sys/arch/aarch64/aarch64/trap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/aarch64/aarch64/copyinout.S diff -u src/sys/arch/aarch64/aarch64/copyinout.S:1.7 src/sys/arch/aarch64/aarch64/copyinout.S:1.8 --- src/sys/arch/aarch64/aarch64/copyinout.S:1.7 Mon Jul 30 09:08:41 2018 +++ src/sys/arch/aarch64/aarch64/copyinout.S Mon Sep 10 17:25:15 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: copyinout.S,v 1.7 2018/07/30 09:08:41 ryo Exp $ */ +/* $NetBSD: copyinout.S,v 1.8 2018/09/10 17:25:15 ryo Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -33,7 +33,7 @@ #include <aarch64/asm.h> #include "assym.h" -RCSID("$NetBSD: copyinout.S,v 1.7 2018/07/30 09:08:41 ryo Exp $"); +RCSID("$NetBSD: copyinout.S,v 1.8 2018/09/10 17:25:15 ryo Exp $"); .macro enter_cpu_onfault stp fp, lr, [sp, #-16]! /* save fp, lr */ @@ -312,3 +312,19 @@ copyoutstr_done: exit_cpu_onfault ret END(copyoutstr) + + +/* LINTSTUB: int kcopy(const void *src, void *dst, size_t len); */ + +ENTRY(kcopy) + enter_cpu_onfault + + mov x3, x0 /* swap src and dst for memcpy */ + mov x0, x1 + mov x1, x3 + bl _C_LABEL(memcpy) + mov x8, #0 /* error = 0 */ + + exit_cpu_onfault + ret +END(kcopy) Index: src/sys/arch/aarch64/aarch64/trap.c diff -u src/sys/arch/aarch64/aarch64/trap.c:1.8 src/sys/arch/aarch64/aarch64/trap.c:1.9 --- src/sys/arch/aarch64/aarch64/trap.c:1.8 Sat Jul 28 09:57:59 2018 +++ src/sys/arch/aarch64/aarch64/trap.c Mon Sep 10 17:25:15 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: trap.c,v 1.8 2018/07/28 09:57:59 ryo Exp $ */ +/* $NetBSD: trap.c,v 1.9 2018/09/10 17:25:15 ryo Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: trap.c,v 1.8 2018/07/28 09:57:59 ryo Exp $"); +__KERNEL_RCSID(1, "$NetBSD: trap.c,v 1.9 2018/09/10 17:25:15 ryo Exp $"); #include "opt_arm_intr_impl.h" #include "opt_compat_netbsd32.h" @@ -421,19 +421,6 @@ ucas_ras_check(struct trapframe *tf) } int -kcopy(const void *src, void *dst, size_t len) -{ - struct faultbuf fb; - int error; - - if ((error = cpu_set_onfault(&fb)) == 0) { - memcpy(dst, src, len); - cpu_unset_onfault(); - } - return error; -} - -int copystr(const void *kfaddr, void *kdaddr, size_t len, size_t *done) { struct faultbuf fb;