move get_order() out of the page.h
RFC PATCH 1/1 move get_order() out of the page.h
Hi all,
currently (2.5.10) every arch specific asm-*/page.h file includes inline get_order() function. All of them (except IA64 one) are identical. Attached patch moves get_order() into separate include file and adds microoptimisation for get_order() calls with immediate argument.
Best regards.
Signature · 2 lines
Andrey Panin | Embedded systems software engineer [email protected] | PGP key: wwwkeys.eu.pgp.net
include/asm-alpha/page.h +1 -13
@@ -67,19 +67,7 @@#define PAGE_BUG (page) BUG() -/* Pure 2^n version of get_order */ -extern __inline__int get_order (unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> #endif /* !__ASSEMBLY__ */
include/asm-arm/page.h +1 -13
@@ -111,19 +111,7 @@#endif -/* Pure 2^n version of get_order */ -static inline int get_order (unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> #endif /* !__ASSEMBLY__ */
include/asm-generic/get_order.h +53 -0
53 lines not on this page · raw message
include/asm-i386/page.h +1 -13
@@ -109,19 +109,7 @@BUG (); \ } while (0) -/* Pure 2^n version of get_order */ -static __inline__ int get_order(unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> #endif /* __ASSEMBLY__ */
include/asm-ia64/page.h +3 -0
@@ -110,6 +110,7 @@#define BUG () do { printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); *(int *)0=0; } while (0)#define PAGE_BUG (page) do { BUG(); } while (0) +#define __HAVE_ARCH_GET_ORDERstatic __inline__int get_order (unsigned long size) {
@@ -122,6 +123,8 @@ order =0 ;return order; } + +#include <asm-generic/get_order.h> # endif /* __KERNEL__ */ #endif /* !__ASSEMBLY__ */
include/asm-m68k/page.h +1 -13
@@ -100,19 +100,7 @@/* to align the pointer to the (next) page boundary */ #define PAGE_ALIGN (addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK) -/* Pure 2^n version of get_order */ -extern __inline__int get_order (unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> #endif /* !__ASSEMBLY__ */
include/asm-mips/page.h +1 -13
@@ -49,19 +49,7 @@#define __pgd (x) ((pgd_t) { (x) } )#define __pgprot (x) ((pgprot_t) { (x) } ) -/* Pure 2^n version of get_order */ -extern __inline__int get_order (unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> #endif /* _LANGUAGE_ASSEMBLY */
include/asm-parisc/page.h +1 -13
@@ -33,19 +33,7 @@#define __pgd (x) ((pgd_t) { (x) } )#define __pgprot (x) ((pgprot_t) { (x) } ) -/* Pure 2^n version of get_order */ -extern __inline__int get_order (unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> #endif /* !__ASSEMBLY__ */
include/asm-ppc/page.h +1 -13
@@ -142,19 +142,7 @@extern unsigned long get_zero_page_fast (void ); -/* Pure 2^n version of get_order */ -extern __inline__int get_order (unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> #endif /* __ASSEMBLY__ */
include/asm-ppc64/page.h +1 -13
@@ -137,19 +137,7 @@*/ #define WANT_PAGE_VIRTUAL 1 -/* Pure 2^n version of get_order */ -extern __inline__int get_order (unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> #define __pa (x) ((unsigned long)(x)-PAGE_OFFSET)
include/asm-s390/page.h +1 -13
@@ -71,19 +71,7 @@BUG (); \ } while (0) -/* Pure 2^n version of get_order */ -extern __inline__ int get_order(unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> /* * These are used to make use of C type-checking..
include/asm-s390x/page.h +1 -13
@@ -69,19 +69,7 @@BUG (); \ } while (0) -/* Pure 2^n version of get_order */ -extern __inline__ int get_order(unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> /* * These are used to make use of C type-checking..
include/asm-sh/page.h +1 -13
@@ -102,19 +102,7 @@BUG (); \ } while (0) -/* Pure 2^n version of get_order */ -static __inline__ int get_order(unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> #endif
include/asm-sparc/page.h +1 -13
@@ -150,19 +150,7 @@#define TASK_UNMAPPED_BASE BTFIXUP_SETHI(sparc_unmapped_base) -/* Pure 2^n version of get_order */ -extern __inline__int get_order (unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> #else /* !(__ASSEMBLY__) */
include/asm-sparc64/page.h +1 -13
@@ -138,19 +138,7 @@extern struct sparc_phys_banks sp_banks[SPARC_PHYS_BANKS ]; -/* Pure 2^n version of get_order */ -extern __inline__int get_order (unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> #endif /* !(__ASSEMBLY__) */
include/asm-x86_64/page.h +1 -13
@@ -74,19 +74,7 @@#define PAGE_BUG (page) BUG()void out_of_line_bug (void ); -/* Pure 2^n version of get_order */ -extern __inline__int get_order (unsigned long size) -{ -int order; - - size = (size-1 ) >> (PAGE_SHIFT -1 ); - order =-1 ; -do { - size >>=1 ; - order++; - }while (size); -return order; -} +#include <asm-generic/get_order.h> #endif /* __ASSEMBLY__ */