diff options
| -rw-r--r-- | Documentation/kernel-parameters.txt | 3 | ||||
| -rw-r--r-- | Documentation/sysctl/kernel.txt | 8 | ||||
| -rw-r--r-- | Documentation/x86/x86_64/boot-options.txt | 4 | ||||
| -rw-r--r-- | arch/x86/include/asm/stacktrace.h | 5 | ||||
| -rw-r--r-- | arch/x86/kernel/dumpstack.c | 21 | ||||
| -rw-r--r-- | arch/x86/kernel/dumpstack_32.c | 33 | ||||
| -rw-r--r-- | arch/x86/kernel/dumpstack_64.c | 53 | ||||
| -rw-r--r-- | kernel/sysctl.c | 7 | 
8 files changed, 4 insertions, 130 deletions
| diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 37babf91f2cb..049a9172ed22 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -1958,9 +1958,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.  			kmemcheck=2 (one-shot mode)  			Default: 2 (one-shot mode) -	kstack=N	[X86] Print N words from the kernel stack -			in oops dumps. -  	kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs.  			Default is 0 (don't ignore, but inject #GP) diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt index ffab8b5caa60..065f18478c1c 100644 --- a/Documentation/sysctl/kernel.txt +++ b/Documentation/sysctl/kernel.txt @@ -40,7 +40,6 @@ show up in /proc/sys/kernel:  - hung_task_warnings  - kexec_load_disabled  - kptr_restrict -- kstack_depth_to_print       [ X86 only ]  - l2cr                        [ PPC only ]  - modprobe                    ==> Documentation/debugging-modules.txt  - modules_disabled @@ -395,13 +394,6 @@ When kptr_restrict is set to (2), kernel pointers printed using  ============================================================== -kstack_depth_to_print: (X86 only) - -Controls the number of words to print when dumping the raw -kernel stack. - -============================================================== -  l2cr: (PPC only)  This flag controls the L2 cache of G3 processor boards. If diff --git a/Documentation/x86/x86_64/boot-options.txt b/Documentation/x86/x86_64/boot-options.txt index 0965a71f9942..61b611e9eeaf 100644 --- a/Documentation/x86/x86_64/boot-options.txt +++ b/Documentation/x86/x86_64/boot-options.txt @@ -277,10 +277,6 @@ IOMMU (input/output memory management unit)      space might stop working. Use this option if you have devices that      are accessed from userspace directly on some PCI host bridge. -Debugging - -  kstack=N	Print N words from the kernel stack in oops dumps. -  Miscellaneous  	nogbpages diff --git a/arch/x86/include/asm/stacktrace.h b/arch/x86/include/asm/stacktrace.h index 37f2e0b377ad..1e375b05cfa8 100644 --- a/arch/x86/include/asm/stacktrace.h +++ b/arch/x86/include/asm/stacktrace.h @@ -43,8 +43,6 @@ static inline bool on_stack(struct stack_info *info, void *addr, size_t len)  		addr + len > begin && addr + len <= end);  } -extern int kstack_depth_to_print; -  #ifdef CONFIG_X86_32  #define STACKSLOTS_PER_LINE 8  #else @@ -86,9 +84,6 @@ get_stack_pointer(struct task_struct *task, struct pt_regs *regs)  void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,  			unsigned long *stack, char *log_lvl); -void show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs, -			unsigned long *sp, char *log_lvl); -  extern unsigned int code_bytes;  /* The form of the top of the frame on the stack */ diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c index f967652500fa..499aa6f0fde5 100644 --- a/arch/x86/kernel/dumpstack.c +++ b/arch/x86/kernel/dumpstack.c @@ -22,7 +22,6 @@  int panic_on_unrecovered_nmi;  int panic_on_io_nmi;  unsigned int code_bytes = 64; -int kstack_depth_to_print = 3 * STACKSLOTS_PER_LINE;  static int die_counter;  bool in_task_stack(unsigned long *stack, struct task_struct *task, @@ -171,12 +170,12 @@ void show_stack(struct task_struct *task, unsigned long *sp)  	if (!sp && task == current)  		sp = get_stack_pointer(current, NULL); -	show_stack_log_lvl(task, NULL, sp, KERN_DEFAULT); +	show_trace_log_lvl(task, NULL, sp, KERN_DEFAULT);  }  void show_stack_regs(struct pt_regs *regs)  { -	show_stack_log_lvl(current, regs, NULL, KERN_DEFAULT); +	show_trace_log_lvl(current, regs, NULL, KERN_DEFAULT);  }  static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED; @@ -295,22 +294,6 @@ void die(const char *str, struct pt_regs *regs, long err)  	oops_end(flags, regs, sig);  } -static int __init kstack_setup(char *s) -{ -	ssize_t ret; -	unsigned long val; - -	if (!s) -		return -EINVAL; - -	ret = kstrtoul(s, 0, &val); -	if (ret) -		return ret; -	kstack_depth_to_print = val; -	return 0; -} -early_param("kstack", kstack_setup); -  static int __init code_bytes_setup(char *s)  {  	ssize_t ret; diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c index 06eb322b5f9f..90cf460d50bd 100644 --- a/arch/x86/kernel/dumpstack_32.c +++ b/arch/x86/kernel/dumpstack_32.c @@ -121,36 +121,6 @@ unknown:  	return -EINVAL;  } -void show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs, -			unsigned long *sp, char *log_lvl) -{ -	unsigned long *stack; -	int i; - -	if (!try_get_task_stack(task)) -		return; - -	sp = sp ? : get_stack_pointer(task, regs); - -	stack = sp; -	for (i = 0; i < kstack_depth_to_print; i++) { -		if (kstack_end(stack)) -			break; -		if ((i % STACKSLOTS_PER_LINE) == 0) { -			if (i != 0) -				pr_cont("\n"); -			printk("%s %08lx", log_lvl, *stack++); -		} else -			pr_cont(" %08lx", *stack++); -		touch_nmi_watchdog(); -	} -	pr_cont("\n"); -	show_trace_log_lvl(task, regs, sp, log_lvl); - -	put_task_stack(task); -} - -  void show_regs(struct pt_regs *regs)  {  	int i; @@ -168,8 +138,7 @@ void show_regs(struct pt_regs *regs)  		unsigned char c;  		u8 *ip; -		pr_emerg("Stack:\n"); -		show_stack_log_lvl(current, regs, NULL, KERN_EMERG); +		show_trace_log_lvl(current, regs, NULL, KERN_EMERG);  		pr_emerg("Code:"); diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c index 36cf1a498227..310abf4542dc 100644 --- a/arch/x86/kernel/dumpstack_64.c +++ b/arch/x86/kernel/dumpstack_64.c @@ -140,56 +140,6 @@ unknown:  	return -EINVAL;  } -void show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs, -			unsigned long *sp, char *log_lvl) -{ -	unsigned long *irq_stack_end; -	unsigned long *irq_stack; -	unsigned long *stack; -	int i; - -	if (!try_get_task_stack(task)) -		return; - -	irq_stack_end = (unsigned long *)this_cpu_read(irq_stack_ptr); -	irq_stack     = irq_stack_end - (IRQ_STACK_SIZE / sizeof(long)); - -	sp = sp ? : get_stack_pointer(task, regs); - -	stack = sp; -	for (i = 0; i < kstack_depth_to_print; i++) { -		unsigned long word; - -		if (stack >= irq_stack && stack <= irq_stack_end) { -			if (stack == irq_stack_end) { -				stack = (unsigned long *) (irq_stack_end[-1]); -				pr_cont(" <EOI> "); -			} -		} else { -		if (kstack_end(stack)) -			break; -		} - -		if (probe_kernel_address(stack, word)) -			break; - -		if ((i % STACKSLOTS_PER_LINE) == 0) { -			if (i != 0) -				pr_cont("\n"); -			printk("%s %016lx", log_lvl, word); -		} else -			pr_cont(" %016lx", word); - -		stack++; -		touch_nmi_watchdog(); -	} - -	pr_cont("\n"); -	show_trace_log_lvl(task, regs, sp, log_lvl); - -	put_task_stack(task); -} -  void show_regs(struct pt_regs *regs)  {  	int i; @@ -207,8 +157,7 @@ void show_regs(struct pt_regs *regs)  		unsigned char c;  		u8 *ip; -		printk(KERN_DEFAULT "Stack:\n"); -		show_stack_log_lvl(current, regs, NULL, KERN_DEFAULT); +		show_trace_log_lvl(current, regs, NULL, KERN_DEFAULT);  		printk(KERN_DEFAULT "Code: "); diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 706309f9ed84..17a5a8253294 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -990,13 +990,6 @@ static struct ctl_table kern_table[] = {  		.proc_handler	= proc_dointvec,  	},  	{ -		.procname	= "kstack_depth_to_print", -		.data		= &kstack_depth_to_print, -		.maxlen		= sizeof(int), -		.mode		= 0644, -		.proc_handler	= proc_dointvec, -	}, -	{  		.procname	= "io_delay_type",  		.data		= &io_delay_type,  		.maxlen		= sizeof(int), |