diff options
Diffstat (limited to 'arch/x86/kernel/dumpstack.c')
| -rw-r--r-- | arch/x86/kernel/dumpstack.c | 23 | 
1 files changed, 20 insertions, 3 deletions
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c index 1b81839b6c8..571246d81ed 100644 --- a/arch/x86/kernel/dumpstack.c +++ b/arch/x86/kernel/dumpstack.c @@ -271,7 +271,7 @@ int __kprobes __die(const char *str, struct pt_regs *regs, long err)  			current->thread.trap_nr, SIGSEGV) == NOTIFY_STOP)  		return 1; -	show_registers(regs); +	show_regs(regs);  #ifdef CONFIG_X86_32  	if (user_mode_vm(regs)) {  		sp = regs->sp; @@ -311,16 +311,33 @@ void die(const char *str, struct pt_regs *regs, long err)  static int __init kstack_setup(char *s)  { +	ssize_t ret; +	unsigned long val; +  	if (!s)  		return -EINVAL; -	kstack_depth_to_print = simple_strtoul(s, NULL, 0); + +	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)  { -	code_bytes = simple_strtoul(s, NULL, 0); +	ssize_t ret; +	unsigned long val; + +	if (!s) +		return -EINVAL; + +	ret = kstrtoul(s, 0, &val); +	if (ret) +		return ret; + +	code_bytes = val;  	if (code_bytes > 8192)  		code_bytes = 8192;  |