forked from Minki/linux
s390: add type checking to CALL_ON_STACK_NORETURN() macro
Make sure the to be called function takes no arguments (and returns void). Otherwise usage of CALL_ON_STACK_NORETURN() would generate broken code. Reviewed-by: Sven Schnelle <svens@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
60a4813c47
commit
a9b660849f
@ -191,12 +191,14 @@ struct stack_frame {
|
||||
|
||||
#define CALL_ON_STACK_NORETURN(fn, stack) \
|
||||
({ \
|
||||
void (*__fn)(void) = fn; \
|
||||
\
|
||||
asm volatile( \
|
||||
" la 15,0(%[_stack])\n" \
|
||||
" xc %[_bc](8,15),%[_bc](15)\n" \
|
||||
" brasl 14,%[_fn]\n" \
|
||||
::[_bc] "i" (offsetof(struct stack_frame, back_chain)), \
|
||||
[_stack] "a" (stack), [_fn] "X" (fn)); \
|
||||
[_stack] "a" (stack), [_fn] "X" (__fn)); \
|
||||
BUG(); \
|
||||
})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user