 fd4fd5aac1
			
		
	
	
	fd4fd5aac1
	
	
	
		
			
			Someone mentioned that almost all the architectures used basically the same implementation of get_order. This patch consolidates them into asm-generic/page.h and includes that in the appropriate places. The exceptions are ia64 and ppc which have their own (presumably optimised) versions. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
		
			
				
	
	
		
			26 lines
		
	
	
	
		
			452 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			452 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _ASM_GENERIC_PAGE_H
 | |
| #define _ASM_GENERIC_PAGE_H
 | |
| 
 | |
| #ifdef __KERNEL__
 | |
| #ifndef __ASSEMBLY__
 | |
| 
 | |
| #include <linux/compiler.h>
 | |
| 
 | |
| /* Pure 2^n version of get_order */
 | |
| static __inline__ __attribute_const__ int get_order(unsigned long size)
 | |
| {
 | |
| 	int order;
 | |
| 
 | |
| 	size = (size - 1) >> (PAGE_SHIFT - 1);
 | |
| 	order = -1;
 | |
| 	do {
 | |
| 		size >>= 1;
 | |
| 		order++;
 | |
| 	} while (size);
 | |
| 	return order;
 | |
| }
 | |
| 
 | |
| #endif	/* __ASSEMBLY__ */
 | |
| #endif	/* __KERNEL__ */
 | |
| 
 | |
| #endif	/* _ASM_GENERIC_PAGE_H */
 |