Commit e66d511f authored by WANG Rui's avatar WANG Rui Committed by Huacai Chen
Browse files

LoongArch: Fix return value underflow in exception path



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: 8941e93c ("LoongArch: Optimize memory ops (memset/memcpy/memmove)")
Reported-by: default avatarWeihao Li <liweihao@loongson.cn>
Signed-off-by: default avatarWANG Rui <wangrui@loongson.cn>
Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
parent 83da30d7
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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
+2 −1
Original line number Diff line number Diff line
@@ -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