# Re: \[PATCH V3 17/22\] LoongArch: Add some library functions

- From: Arnd Bergmann \<arnd@arndb.de\>
- Date: 2021-09-17 08:34:02 
- List: linux-doc
- Page: https://ratatoskr.run/linux-doc/2021/09/1512672
- Thread: https://ratatoskr.run/linux-arch/2021/09/1512437/t.md

```text
On Fri, Sep 17, 2021 at 5:57 AM Huacai Chen [ref] wrote:
>
> 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
```
