mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-03 01:59:51 +02:00 
			
		
		
		
	sparc64: Kill CONFIG_STACK_DEBUG code.
The generic stack tracer does this job just as well. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									63b7549573
								
							
						
					
					
						commit
						ddacd0bc70
					
				
					 2 changed files with 1 additions and 78 deletions
				
			
		| 
						 | 
					@ -19,13 +19,10 @@ config DEBUG_DCFLUSH
 | 
				
			||||||
	bool "D-cache flush debugging"
 | 
						bool "D-cache flush debugging"
 | 
				
			||||||
	depends on SPARC64 && DEBUG_KERNEL
 | 
						depends on SPARC64 && DEBUG_KERNEL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config STACK_DEBUG
 | 
					 | 
				
			||||||
	bool "Stack Overflow Detection Support"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
config MCOUNT
 | 
					config MCOUNT
 | 
				
			||||||
	bool
 | 
						bool
 | 
				
			||||||
	depends on SPARC64
 | 
						depends on SPARC64
 | 
				
			||||||
	depends on STACK_DEBUG || FUNCTION_TRACER
 | 
						depends on FUNCTION_TRACER
 | 
				
			||||||
	default y
 | 
						default y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config FRAME_POINTER
 | 
					config FRAME_POINTER
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,26 +7,11 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <linux/linkage.h>
 | 
					#include <linux/linkage.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <asm/ptrace.h>
 | 
					 | 
				
			||||||
#include <asm/thread_info.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * This is the main variant and is called by C code.  GCC's -pg option
 | 
					 * This is the main variant and is called by C code.  GCC's -pg option
 | 
				
			||||||
 * automatically instruments every C function with a call to this.
 | 
					 * automatically instruments every C function with a call to this.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_STACK_DEBUG
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define OVSTACKSIZE	4096		/* lets hope this is enough */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	.data
 | 
					 | 
				
			||||||
	.align		8
 | 
					 | 
				
			||||||
panicstring:
 | 
					 | 
				
			||||||
	.asciz		"Stack overflow\n"
 | 
					 | 
				
			||||||
	.align		8
 | 
					 | 
				
			||||||
ovstack:
 | 
					 | 
				
			||||||
	.skip		OVSTACKSIZE
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	.text
 | 
						.text
 | 
				
			||||||
	.align		32
 | 
						.align		32
 | 
				
			||||||
	.globl		_mcount
 | 
						.globl		_mcount
 | 
				
			||||||
| 
						 | 
					@ -35,65 +20,6 @@ ovstack:
 | 
				
			||||||
	.type		mcount,#function
 | 
						.type		mcount,#function
 | 
				
			||||||
_mcount:
 | 
					_mcount:
 | 
				
			||||||
mcount:
 | 
					mcount:
 | 
				
			||||||
#ifdef CONFIG_STACK_DEBUG
 | 
					 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	 * Check whether %sp is dangerously low.
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	ldub		[%g6 + TI_FPDEPTH], %g1
 | 
					 | 
				
			||||||
	srl		%g1, 1, %g3
 | 
					 | 
				
			||||||
	add		%g3, 1, %g3
 | 
					 | 
				
			||||||
	sllx		%g3, 8, %g3			! each fpregs frame is 256b
 | 
					 | 
				
			||||||
	add		%g3, 192, %g3
 | 
					 | 
				
			||||||
	add		%g6, %g3, %g3			! where does task_struct+frame end?
 | 
					 | 
				
			||||||
	sub		%g3, STACK_BIAS, %g3
 | 
					 | 
				
			||||||
	cmp		%sp, %g3
 | 
					 | 
				
			||||||
	bg,pt		%xcc, 1f
 | 
					 | 
				
			||||||
	 nop
 | 
					 | 
				
			||||||
	lduh		[%g6 + TI_CPU], %g1
 | 
					 | 
				
			||||||
	sethi		%hi(hardirq_stack), %g3
 | 
					 | 
				
			||||||
	or		%g3, %lo(hardirq_stack), %g3
 | 
					 | 
				
			||||||
	sllx		%g1, 3, %g1
 | 
					 | 
				
			||||||
	ldx		[%g3 + %g1], %g7
 | 
					 | 
				
			||||||
	sub		%g7, STACK_BIAS, %g7
 | 
					 | 
				
			||||||
	cmp		%sp, %g7
 | 
					 | 
				
			||||||
	bleu,pt		%xcc, 2f
 | 
					 | 
				
			||||||
	 sethi		%hi(THREAD_SIZE), %g3
 | 
					 | 
				
			||||||
	add		%g7, %g3, %g7
 | 
					 | 
				
			||||||
	cmp		%sp, %g7
 | 
					 | 
				
			||||||
	blu,pn		%xcc, 1f
 | 
					 | 
				
			||||||
2:	 sethi		%hi(softirq_stack), %g3
 | 
					 | 
				
			||||||
	or		%g3, %lo(softirq_stack), %g3
 | 
					 | 
				
			||||||
	ldx		[%g3 + %g1], %g7
 | 
					 | 
				
			||||||
	sub		%g7, STACK_BIAS, %g7
 | 
					 | 
				
			||||||
	cmp		%sp, %g7
 | 
					 | 
				
			||||||
	bleu,pt		%xcc, 3f
 | 
					 | 
				
			||||||
	 sethi		%hi(THREAD_SIZE), %g3
 | 
					 | 
				
			||||||
	add		%g7, %g3, %g7
 | 
					 | 
				
			||||||
	cmp		%sp, %g7
 | 
					 | 
				
			||||||
	blu,pn		%xcc, 1f
 | 
					 | 
				
			||||||
	 nop
 | 
					 | 
				
			||||||
	/* If we are already on ovstack, don't hop onto it
 | 
					 | 
				
			||||||
	 * again, we are already trying to output the stack overflow
 | 
					 | 
				
			||||||
	 * message.
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
3:	sethi		%hi(ovstack), %g7		! cant move to panic stack fast enough
 | 
					 | 
				
			||||||
	 or		%g7, %lo(ovstack), %g7
 | 
					 | 
				
			||||||
	add		%g7, OVSTACKSIZE, %g3
 | 
					 | 
				
			||||||
	sub		%g3, STACK_BIAS + 192, %g3
 | 
					 | 
				
			||||||
	sub		%g7, STACK_BIAS, %g7
 | 
					 | 
				
			||||||
	cmp		%sp, %g7
 | 
					 | 
				
			||||||
	blu,pn		%xcc, 2f
 | 
					 | 
				
			||||||
	 cmp		%sp, %g3
 | 
					 | 
				
			||||||
	bleu,pn		%xcc, 1f
 | 
					 | 
				
			||||||
	 nop
 | 
					 | 
				
			||||||
2:	mov		%g3, %sp
 | 
					 | 
				
			||||||
	sethi		%hi(panicstring), %g3
 | 
					 | 
				
			||||||
	call		prom_printf
 | 
					 | 
				
			||||||
	 or		%g3, %lo(panicstring), %o0
 | 
					 | 
				
			||||||
	call		prom_halt
 | 
					 | 
				
			||||||
	 nop
 | 
					 | 
				
			||||||
1:
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#ifdef CONFIG_FUNCTION_TRACER
 | 
					#ifdef CONFIG_FUNCTION_TRACER
 | 
				
			||||||
#ifdef CONFIG_DYNAMIC_FTRACE
 | 
					#ifdef CONFIG_DYNAMIC_FTRACE
 | 
				
			||||||
	/* Do nothing, the retl/nop below is all we need.  */
 | 
						/* Do nothing, the retl/nop below is all we need.  */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue