summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorTiezhu Yang <yangtiezhu@loongson.cn>2026-03-16 10:36:01 +0800
committerHuacai Chen <chenhuacai@loongson.cn>2026-03-16 10:36:01 +0800
commitd3b8491961207ac967795c34375890407fd51a45 (patch)
tree7e4a3cc58c3a341380169a3a55cc05ab9ee9da96 /arch
parent431ce839dad66d0d56fb604785452c6a57409f35 (diff)
downloadlinux-next-d3b8491961207ac967795c34375890407fd51a45.tar.gz
linux-next-d3b8491961207ac967795c34375890407fd51a45.zip
LoongArch: No need to flush icache if text copy failed
If copy_to_kernel_nofault() failed, no need to flush icache and just return immediately. Cc: stable@vger.kernel.org Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Diffstat (limited to 'arch')
-rw-r--r--arch/loongarch/kernel/inst.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/loongarch/kernel/inst.c b/arch/loongarch/kernel/inst.c
index 6c4ce6892276..1a728082944c 100644
--- a/arch/loongarch/kernel/inst.c
+++ b/arch/loongarch/kernel/inst.c
@@ -246,13 +246,15 @@ static int text_copy_cb(void *data)
if (smp_processor_id() == copy->cpu) {
ret = copy_to_kernel_nofault(copy->dst, copy->src, copy->len);
- if (ret)
+ if (ret) {
pr_err("%s: operation failed\n", __func__);
+ return ret;
+ }
}
flush_icache_range((unsigned long)copy->dst, (unsigned long)copy->dst + copy->len);
- return ret;
+ return 0;
}
int larch_insn_text_copy(void *dst, void *src, size_t len)