Rather than having two functionally identical implementations for 32- and 64-bit configurations, extend the existing assembly abstractions enough to fold the two rwlock implementations into a shared one. Signed-off-by: Jan Beulich <jbeulich@novell.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/4E258DD7020000780004E3EA@nat28.tlf.novell.com Signed-off-by: Ingo Molnar <mingo@elte.hu>
		
			
				
	
	
		
			26 lines
		
	
	
	
		
			582 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			582 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
#ifdef __ASSEMBLY__
 | 
						|
 | 
						|
#include <asm/asm.h>
 | 
						|
#include <asm/dwarf2.h>
 | 
						|
 | 
						|
/* The annotation hides the frame from the unwinder and makes it look
 | 
						|
   like a ordinary ebp save/restore. This avoids some special cases for
 | 
						|
   frame pointer later */
 | 
						|
#ifdef CONFIG_FRAME_POINTER
 | 
						|
	.macro FRAME
 | 
						|
	__ASM_SIZE(push,_cfi)	%__ASM_REG(bp)
 | 
						|
	CFI_REL_OFFSET		__ASM_REG(bp), 0
 | 
						|
	__ASM_SIZE(mov)		%__ASM_REG(sp), %__ASM_REG(bp)
 | 
						|
	.endm
 | 
						|
	.macro ENDFRAME
 | 
						|
	__ASM_SIZE(pop,_cfi)	%__ASM_REG(bp)
 | 
						|
	CFI_RESTORE		__ASM_REG(bp)
 | 
						|
	.endm
 | 
						|
#else
 | 
						|
	.macro FRAME
 | 
						|
	.endm
 | 
						|
	.macro ENDFRAME
 | 
						|
	.endm
 | 
						|
#endif
 | 
						|
 | 
						|
#endif  /*  __ASSEMBLY__  */
 |