 d68b8622cc
			
		
	
	
	d68b8622cc
	
	
	
		
			
			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>
		
			
				
	
	
		
			15 lines
		
	
	
	
		
			391 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			15 lines
		
	
	
	
		
			391 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __ASM_LINKAGE_H
 | |
| #define __ASM_LINKAGE_H
 | |
| 
 | |
| #define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))
 | |
| #define FASTCALL(x)	x __attribute__((regparm(3)))
 | |
| #define fastcall	__attribute__((regparm(3)))
 | |
| 
 | |
| #define prevent_tail_call(ret) __asm__ ("" : "=r" (ret) : "0" (ret))
 | |
| 
 | |
| #ifdef CONFIG_X86_ALIGNMENT_16
 | |
| #define __ALIGN .align 16,0x90
 | |
| #define __ALIGN_STR ".align 16,0x90"
 | |
| #endif
 | |
| 
 | |
| #endif
 |