diff options
| author | Tiezhu Yang <yangtiezhu@loongson.cn> | 2026-03-16 10:36:01 +0800 |
|---|---|---|
| committer | Huacai Chen <chenhuacai@loongson.cn> | 2026-03-16 10:36:01 +0800 |
| commit | d3b8491961207ac967795c34375890407fd51a45 (patch) | |
| tree | 7e4a3cc58c3a341380169a3a55cc05ab9ee9da96 /arch | |
| parent | 431ce839dad66d0d56fb604785452c6a57409f35 (diff) | |
| download | linux-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.c | 6 |
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) |
