diff options
author | Uwe Kleine-Koenig <ukl@pengutronix.de> | 2008-12-12 11:18:54 +0100 |
---|---|---|
committer | Uwe Kleine-Koenig <ukl@pengutronix.de> | 2008-12-12 11:18:54 +0100 |
commit | 7971db5a4b4176ad5df590fce07a962c643a2740 (patch) | |
tree | 6ad8e09c5376c4e4c532c3411b0171ba1011acd9 /arch/arm/include | |
parent | d403700bf8fc903584e830967f5d64075770848c (diff) | |
parent | c4edfced662fa64deeed89c7d8c9f96d86130c19 (diff) | |
download | kernel_samsung_smdk4412-7971db5a4b4176ad5df590fce07a962c643a2740.zip kernel_samsung_smdk4412-7971db5a4b4176ad5df590fce07a962c643a2740.tar.gz kernel_samsung_smdk4412-7971db5a4b4176ad5df590fce07a962c643a2740.tar.bz2 |
Merge branch 'for-rmk-misc' into for-rmk
Diffstat (limited to 'arch/arm/include')
-rw-r--r-- | arch/arm/include/asm/bitops.h | 16 | ||||
-rw-r--r-- | arch/arm/include/asm/processor.h | 2 |
2 files changed, 11 insertions, 7 deletions
diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h index 9a1db20..63a481f 100644 --- a/arch/arm/include/asm/bitops.h +++ b/arch/arm/include/asm/bitops.h @@ -237,6 +237,7 @@ extern int _find_next_bit_be(const unsigned long *p, int size, int offset); #if __LINUX_ARM_ARCH__ < 5 #include <asm-generic/bitops/ffz.h> +#include <asm-generic/bitops/__fls.h> #include <asm-generic/bitops/__ffs.h> #include <asm-generic/bitops/fls.h> #include <asm-generic/bitops/ffs.h> @@ -277,16 +278,19 @@ static inline int constant_fls(int x) * the clz instruction for much better code efficiency. */ -#define __fls(x) \ - ( __builtin_constant_p(x) ? constant_fls(x) : \ - ({ int __r; asm("clz\t%0, %1" : "=r"(__r) : "r"(x) : "cc"); 32-__r; }) ) - -/* Implement fls() in C so that 64-bit args are suitably truncated */ static inline int fls(int x) { - return __fls(x); + int ret; + + if (__builtin_constant_p(x)) + return constant_fls(x); + + asm("clz\t%0, %1" : "=r" (ret) : "r" (x) : "cc"); + ret = 32 - ret; + return ret; } +#define __fls(x) (fls(x) - 1) #define ffs(x) ({ unsigned long __t = (x); fls(__t & -__t); }) #define __ffs(x) (ffs(x) - 1) #define ffz(x) __ffs( ~(x) ) diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/processor.h index 517a4d6..6ff3379 100644 --- a/arch/arm/include/asm/processor.h +++ b/arch/arm/include/asm/processor.h @@ -23,7 +23,7 @@ #include <asm/types.h> #ifdef __KERNEL__ -#define STACK_TOP ((current->personality == PER_LINUX_32BIT) ? \ +#define STACK_TOP ((current->personality & ADDR_LIMIT_32BIT) ? \ TASK_SIZE : TASK_SIZE_26) #define STACK_TOP_MAX TASK_SIZE #endif |