浏览代码

x86/fpu/math-emu: Add ENDPROC to functions

Functions in math-emu are annotated as ENTRY() symbols, but their
ends are not annotated at all. But these are standard functions
called from C, with proper stack register update etc.

Omitting the ends means:

  * the annotations are not paired and we cannot deal with such functions
    e.g. in objtool

  * the symbols are not marked as functions in the object file

  * there are no sizes of the functions in the object file

So fix this by adding ENDPROC() to each such case in math-emu.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20170824080624.7768-1-jslaby@suse.cz
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Jiri Slaby 8 年之前
父节点
当前提交
bd6be579a7

+ 1 - 0
arch/x86/math-emu/div_Xsig.S

@@ -363,3 +363,4 @@ L_bugged_2:
 	pop	%ebx
 	pop	%ebx
 	jmp	L_exit
 	jmp	L_exit
 #endif /* PARANOID */ 
 #endif /* PARANOID */ 
+ENDPROC(div_Xsig)

+ 1 - 1
arch/x86/math-emu/div_small.S

@@ -44,4 +44,4 @@ ENTRY(FPU_div_small)
 
 
 	leave
 	leave
 	ret
 	ret
-
+ENDPROC(FPU_div_small)

+ 3 - 1
arch/x86/math-emu/mul_Xsig.S

@@ -62,6 +62,7 @@ ENTRY(mul32_Xsig)
 	popl %esi
 	popl %esi
 	leave
 	leave
 	ret
 	ret
+ENDPROC(mul32_Xsig)
 
 
 
 
 ENTRY(mul64_Xsig)
 ENTRY(mul64_Xsig)
@@ -114,6 +115,7 @@ ENTRY(mul64_Xsig)
 	popl %esi
 	popl %esi
 	leave
 	leave
 	ret
 	ret
+ENDPROC(mul64_Xsig)
 
 
 
 
 
 
@@ -173,4 +175,4 @@ ENTRY(mul_Xsig_Xsig)
 	popl %esi
 	popl %esi
 	leave
 	leave
 	ret
 	ret
-
+ENDPROC(mul_Xsig_Xsig)

+ 1 - 0
arch/x86/math-emu/polynom_Xsig.S

@@ -133,3 +133,4 @@ L_accum_done:
 	popl	%esi
 	popl	%esi
 	leave
 	leave
 	ret
 	ret
+ENDPROC(polynomial_Xsig)

+ 2 - 0
arch/x86/math-emu/reg_norm.S

@@ -94,6 +94,7 @@ L_overflow:
 	call	arith_overflow
 	call	arith_overflow
 	pop	%ebx
 	pop	%ebx
 	jmp	L_exit
 	jmp	L_exit
+ENDPROC(FPU_normalize)
 
 
 
 
 
 
@@ -145,3 +146,4 @@ L_exit_nuo_zero:
 	popl	%ebx
 	popl	%ebx
 	leave
 	leave
 	ret
 	ret
+ENDPROC(FPU_normalize_nuo)

+ 2 - 0
arch/x86/math-emu/reg_round.S

@@ -706,3 +706,5 @@ L_exception_exit:
 	mov	$-1,%eax
 	mov	$-1,%eax
 	jmp	fpu_reg_round_special_exit
 	jmp	fpu_reg_round_special_exit
 #endif /* PARANOID */ 
 #endif /* PARANOID */ 
+
+ENDPROC(FPU_round)

+ 1 - 0
arch/x86/math-emu/reg_u_add.S

@@ -165,3 +165,4 @@ L_exit:
 	leave
 	leave
 	ret
 	ret
 #endif /* PARANOID */
 #endif /* PARANOID */
+ENDPROC(FPU_u_add)

+ 2 - 0
arch/x86/math-emu/reg_u_div.S

@@ -469,3 +469,5 @@ L_exit:
 	leave
 	leave
 	ret
 	ret
 #endif /* PARANOID */ 
 #endif /* PARANOID */ 
+
+ENDPROC(FPU_u_div)

+ 1 - 0
arch/x86/math-emu/reg_u_mul.S

@@ -146,3 +146,4 @@ L_exit:
 	ret
 	ret
 #endif /* PARANOID */ 
 #endif /* PARANOID */ 
 
 
+ENDPROC(FPU_u_mul)

+ 1 - 0
arch/x86/math-emu/reg_u_sub.S

@@ -270,3 +270,4 @@ L_exit:
 	popl	%esi
 	popl	%esi
 	leave
 	leave
 	ret
 	ret
+ENDPROC(FPU_u_sub)

+ 2 - 2
arch/x86/math-emu/round_Xsig.S

@@ -78,7 +78,7 @@ L_exit:
 	popl	%ebx
 	popl	%ebx
 	leave
 	leave
 	ret
 	ret
-
+ENDPROC(round_Xsig)
 
 
 
 
 
 
@@ -138,4 +138,4 @@ L_n_exit:
 	popl	%ebx
 	popl	%ebx
 	leave
 	leave
 	ret
 	ret
-
+ENDPROC(norm_Xsig)

+ 1 - 0
arch/x86/math-emu/shr_Xsig.S

@@ -85,3 +85,4 @@ L_more_than_95:
 	popl	%esi
 	popl	%esi
 	leave
 	leave
 	ret
 	ret
+ENDPROC(shr_Xsig)

+ 2 - 0
arch/x86/math-emu/wm_shrx.S

@@ -92,6 +92,7 @@ L_more_than_95:
 	popl	%esi
 	popl	%esi
 	leave
 	leave
 	ret
 	ret
+ENDPROC(FPU_shrx)
 
 
 
 
 /*---------------------------------------------------------------------------+
 /*---------------------------------------------------------------------------+
@@ -202,3 +203,4 @@ Ls_more_than_95:
 	popl	%esi
 	popl	%esi
 	leave
 	leave
 	ret
 	ret
+ENDPROC(FPU_shrxs)

+ 1 - 0
arch/x86/math-emu/wm_sqrt.S

@@ -468,3 +468,4 @@ sqrt_more_prec_large:
 /* Our estimate is too large */
 /* Our estimate is too large */
 	movl	$0x7fffff00,%eax
 	movl	$0x7fffff00,%eax
 	jmp	sqrt_round_result
 	jmp	sqrt_round_result
+ENDPROC(wm_sqrt)