 85718fae2a
			
		
	
	
	85718fae2a
	
	
	
		
			
			Several Linux features are dependent on stack trace support. Add it so they can be enabled. Signed-off-by: Tony Luck <tony.luck@intel.com>
		
			
				
	
	
		
			39 lines
		
	
	
	
		
			776 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
	
		
			776 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * arch/ia64/kernel/stacktrace.c
 | |
|  *
 | |
|  * Stack trace management functions
 | |
|  *
 | |
|  */
 | |
| #include <linux/sched.h>
 | |
| #include <linux/stacktrace.h>
 | |
| #include <linux/module.h>
 | |
| 
 | |
| static void
 | |
| ia64_do_save_stack(struct unw_frame_info *info, void *arg)
 | |
| {
 | |
| 	struct stack_trace *trace = arg;
 | |
| 	unsigned long ip;
 | |
| 	int skip = trace->skip;
 | |
| 
 | |
| 	trace->nr_entries = 0;
 | |
| 	do {
 | |
| 		unw_get_ip(info, &ip);
 | |
| 		if (ip == 0)
 | |
| 			break;
 | |
| 		if (skip == 0) {
 | |
| 			trace->entries[trace->nr_entries++] = ip;
 | |
| 			if (trace->nr_entries == trace->max_entries)
 | |
| 				break;
 | |
| 		} else
 | |
| 			skip--;
 | |
| 	} while (unw_unwind(info) >= 0);
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * Save stack-backtrace addresses into a stack_trace buffer.
 | |
|  */
 | |
| void save_stack_trace(struct stack_trace *trace)
 | |
| {
 | |
| 	unw_init_running(ia64_do_save_stack, trace);
 | |
| }
 | |
| EXPORT_SYMBOL(save_stack_trace);
 |