diff options
Diffstat (limited to 'arch/sparc/kernel/kstack.h')
| -rw-r--r-- | arch/sparc/kernel/kstack.h | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/sparc/kernel/kstack.h b/arch/sparc/kernel/kstack.h index 4248d969272..5247283d1c0 100644 --- a/arch/sparc/kernel/kstack.h +++ b/arch/sparc/kernel/kstack.h @@ -11,6 +11,10 @@ static inline bool kstack_valid(struct thread_info *tp, unsigned long sp)  {  	unsigned long base = (unsigned long) tp; +	/* Stack pointer must be 16-byte aligned.  */ +	if (sp & (16UL - 1)) +		return false; +  	if (sp >= (base + sizeof(struct thread_info)) &&  	    sp <= (base + THREAD_SIZE - sizeof(struct sparc_stackf)))  		return true;  |