On Fri, Sep 17, 2021 at 5:57 AM Huacai Chen [off-list ref] wrote:
quoted hunk ↗ jump to hunk
diff --git a/arch/loongarch/lib/strncpy_user.S b/arch/loongarch/lib/strncpy_user.S
new file mode 100644
index 000000000000..b42d81045929
--- /dev/null
+++ b/arch/loongarch/lib/strncpy_user.S
@@ -0,0 +1,51 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2020-2021 Loongson Technology Corporation Limited
+ */
+#include <linux/errno.h>
+#include <asm/asm.h>
+#include <asm/asmmacro.h>
+#include <asm/export.h>
+#include <asm/regdef.h>
+
+#define _ASM_EXTABLE(from, to) \
+ .section __ex_table, "a"; \
+ PTR from, to; \
+ .previous
+
+/*
+ * long __strncpy_from_user(char *to, const char *from, long len)
+ *
+ * a0: to
+ * a1: from
+ * a2: len
+ */
+SYM_FUNC_START(__strncpy_from_user)
+ move a3, zero
+
I just removed most custom __strncpy_from_user/__strnlen_user
implementations from architectures, and I think you should remove
these as well. Your current version probably does not work any more
with v5.15-rc1, and it is neither efficient nor robust.
Arnd