Skip to content

Commit

Permalink
[PATCH] i386: fix prevent_tail_call
Browse files Browse the repository at this point in the history
We fixed this bug before, but it didn't take.  It may have been the case
that the problem was first noticed to occur in a CONFIG_REGPARM compile.
But it's not regparm functions that need not to make tail calls, it's
asmlinkage functions called with a user pt_regs frame on the stack
supplying their arguments.  prevent_tail_call probably doesn't do anything
at all in regparm functions (your argument registers are going to be
clobbered, period).  It was a braino to conditionalize that definition in
the first place.

Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Roland McGrath authored and Linus Torvalds committed May 26, 2005
1 parent 4ec5240 commit d68b862
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions include/asm-i386/linkage.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
#define FASTCALL(x) x __attribute__((regparm(3)))
#define fastcall __attribute__((regparm(3)))

#ifdef CONFIG_REGPARM
# define prevent_tail_call(ret) __asm__ ("" : "=r" (ret) : "0" (ret))
#endif
#define prevent_tail_call(ret) __asm__ ("" : "=r" (ret) : "0" (ret))

#ifdef CONFIG_X86_ALIGNMENT_16
#define __ALIGN .align 16,0x90
Expand Down

0 comments on commit d68b862

Please sign in to comment.