diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-18 12:57:18 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-18 12:57:18 -0800 | 
| commit | d05d82f7110b08fd36178a641b69a1f206e1142b (patch) | |
| tree | a274bb136f5ed336fb7a12bb86ea24cc5daffdc9 /arch/tile/kernel/stack.c | |
| parent | d90f351a9bec6af3e8e7cefbbff94072461c3c9a (diff) | |
| parent | 00d27c6336b00345724b2510f7c5b8cee3055f02 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
Pull arch/tile updates from Chris Metcalf:
 "This is a grab bag of changes that includes some NOHZ and
  context-tracking related changes, some debugging improvements,
  JUMP_LABEL support, and some fixes for tilepro allmodconfig support.
  We also remove the now-unused node_has_online_mem() definitions both
  for tile's asm/topology.h as well as in linux/topology.h itself"
* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
  numa: remove stale node_has_online_mem() define
  arch/tile: move user_exit() to early kernel entry sequence
  tile: fix bug in setting PT_FLAGS_DISABLE_IRQ on kernel entry
  tile: fix tilepro casts for readl, writel, etc
  tile: fix a -Wframe-larger-than warning
  tile: include the syscall number in the backtrace
  MAINTAINERS: add git URL for tile
  arch/tile: adopt prepare_exit_to_usermode() model from x86
  tile/jump_label: add jump label support for TILE-Gx
  tile: define a macro ktext_writable_addr to get writable kernel text address
Diffstat (limited to 'arch/tile/kernel/stack.c')
| -rw-r--r-- | arch/tile/kernel/stack.c | 17 | 
1 files changed, 8 insertions, 9 deletions
diff --git a/arch/tile/kernel/stack.c b/arch/tile/kernel/stack.c index 402b9c85a894..22bbbd3ff4a3 100644 --- a/arch/tile/kernel/stack.c +++ b/arch/tile/kernel/stack.c @@ -78,8 +78,7 @@ static bool read_memory_func(void *result, unsigned long address,  /* Return a pt_regs pointer for a valid fault handler frame */  static struct pt_regs *valid_fault_handler(struct KBacktraceIterator* kbt)  { -	const char *fault = NULL;  /* happy compiler */ -	char fault_buf[64]; +	char fault[64];  	unsigned long sp = kbt->it.sp;  	struct pt_regs *p; @@ -90,14 +89,14 @@ static struct pt_regs *valid_fault_handler(struct KBacktraceIterator* kbt)  	if (!in_kernel_stack(kbt, sp + C_ABI_SAVE_AREA_SIZE + PTREGS_SIZE-1))  		return NULL;  	p = (struct pt_regs *)(sp + C_ABI_SAVE_AREA_SIZE); -	if (p->faultnum == INT_SWINT_1 || p->faultnum == INT_SWINT_1_SIGRETURN) -		fault = "syscall"; -	else { -		if (kbt->verbose) {     /* else we aren't going to use it */ -			snprintf(fault_buf, sizeof(fault_buf), +	if (kbt->verbose) {     /* else we aren't going to use it */ +		if (p->faultnum == INT_SWINT_1 || +		    p->faultnum == INT_SWINT_1_SIGRETURN) +			snprintf(fault, sizeof(fault), +				 "syscall %ld", p->regs[TREG_SYSCALL_NR]); +		else +			snprintf(fault, sizeof(fault),  				 "interrupt %ld", p->faultnum); -			fault = fault_buf; -		}  	}  	if (EX1_PL(p->ex1) == KERNEL_PL &&  	    __kernel_text_address(p->pc) &&  | 
