diff options
Diffstat (limited to 'arch/xtensa/include/asm/processor.h')
| -rw-r--r-- | arch/xtensa/include/asm/processor.h | 21 | 
1 files changed, 12 insertions, 9 deletions
| diff --git a/arch/xtensa/include/asm/processor.h b/arch/xtensa/include/asm/processor.h index f7dd895b2353..0c14018d1c26 100644 --- a/arch/xtensa/include/asm/processor.h +++ b/arch/xtensa/include/asm/processor.h @@ -187,15 +187,18 @@ struct thread_struct {  /* Clearing a0 terminates the backtrace. */  #define start_thread(regs, new_pc, new_sp) \ -	memset(regs, 0, sizeof(*regs)); \ -	regs->pc = new_pc; \ -	regs->ps = USER_PS_VALUE; \ -	regs->areg[1] = new_sp; \ -	regs->areg[0] = 0; \ -	regs->wmask = 1; \ -	regs->depc = 0; \ -	regs->windowbase = 0; \ -	regs->windowstart = 1; +	do { \ +		memset((regs), 0, sizeof(*(regs))); \ +		(regs)->pc = (new_pc); \ +		(regs)->ps = USER_PS_VALUE; \ +		(regs)->areg[1] = (new_sp); \ +		(regs)->areg[0] = 0; \ +		(regs)->wmask = 1; \ +		(regs)->depc = 0; \ +		(regs)->windowbase = 0; \ +		(regs)->windowstart = 1; \ +		(regs)->syscall = NO_SYSCALL; \ +	} while (0)  /* Forward declaration */  struct task_struct; |