mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 13:53:33 +00:00
LoongArch: Fix return value underflow in exception path
commite66d511fc9
upstream. This patch fixes an underflow issue in the return value within the exception path, specifically at .Llt8 when the remaining length is less than 8 bytes. Cc: stable@vger.kernel.org Fixes:8941e93ca5
("LoongArch: Optimize memory ops (memset/memcpy/memmove)") Reported-by: Weihao Li <liweihao@loongson.cn> Signed-off-by: WANG Rui <wangrui@loongson.cn> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
453af7c2cc
commit
a04cb0c408
2 changed files with 4 additions and 2 deletions
|
@ -108,6 +108,7 @@ SYM_FUNC_START(__clear_user_fast)
|
|||
addi.d a3, a2, -8
|
||||
bgeu a0, a3, .Llt8
|
||||
15: st.d zero, a0, 0
|
||||
addi.d a0, a0, 8
|
||||
|
||||
.Llt8:
|
||||
16: st.d zero, a2, -8
|
||||
|
@ -188,7 +189,7 @@ SYM_FUNC_START(__clear_user_fast)
|
|||
_asm_extable 13b, .L_fixup_handle_0
|
||||
_asm_extable 14b, .L_fixup_handle_1
|
||||
_asm_extable 15b, .L_fixup_handle_0
|
||||
_asm_extable 16b, .L_fixup_handle_1
|
||||
_asm_extable 16b, .L_fixup_handle_0
|
||||
_asm_extable 17b, .L_fixup_handle_s0
|
||||
_asm_extable 18b, .L_fixup_handle_s0
|
||||
_asm_extable 19b, .L_fixup_handle_s0
|
||||
|
|
|
@ -136,6 +136,7 @@ SYM_FUNC_START(__copy_user_fast)
|
|||
bgeu a1, a4, .Llt8
|
||||
30: ld.d t0, a1, 0
|
||||
31: st.d t0, a0, 0
|
||||
addi.d a0, a0, 8
|
||||
|
||||
.Llt8:
|
||||
32: ld.d t0, a3, -8
|
||||
|
@ -246,7 +247,7 @@ SYM_FUNC_START(__copy_user_fast)
|
|||
_asm_extable 30b, .L_fixup_handle_0
|
||||
_asm_extable 31b, .L_fixup_handle_0
|
||||
_asm_extable 32b, .L_fixup_handle_0
|
||||
_asm_extable 33b, .L_fixup_handle_1
|
||||
_asm_extable 33b, .L_fixup_handle_0
|
||||
_asm_extable 34b, .L_fixup_handle_s0
|
||||
_asm_extable 35b, .L_fixup_handle_s0
|
||||
_asm_extable 36b, .L_fixup_handle_s0
|
||||
|
|
Loading…
Reference in a new issue