Hi, Arnd, On Fri, Sep 17, 2021 at 4:33 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > On Fri, Sep 17, 2021 at 5:57 AM Huacai Chen <chenhuacai@xxxxxxxxxxx> 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. I'm very sorry for this. You have talked about these functions in V1, and I do removed them in the Makefile, but kept the source files... Huacai > > Arnd