diff options
| -rw-r--r-- | arch/powerpc/mm/pgtable_32.c | 5 | ||||
| -rw-r--r-- | arch/ppc/mm/pgtable.c | 5 | ||||
| -rw-r--r-- | arch/ppc/syslib/ppc85xx_rio.c | 2 | ||||
| -rw-r--r-- | drivers/net/gianfar_ethtool.c | 2 | ||||
| -rw-r--r-- | include/linux/log2.h | 11 |
5 files changed, 13 insertions, 12 deletions
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c index 1891dbeeb8..bd02272bcb 100644 --- a/arch/powerpc/mm/pgtable_32.c +++ b/arch/powerpc/mm/pgtable_32.c | |||
| @@ -294,11 +294,8 @@ void __init mapin_ram(void) | |||
| 294 | } | 294 | } |
| 295 | } | 295 | } |
| 296 | 296 | ||
| 297 | /* is x a power of 2? */ | ||
| 298 | #define is_power_of_2(x) ((x) != 0 && (((x) & ((x) - 1)) == 0)) | ||
| 299 | |||
| 300 | /* is x a power of 4? */ | 297 | /* is x a power of 4? */ |
| 301 | #define is_power_of_4(x) ((x) != 0 && (((x) & (x-1)) == 0) && (ffs(x) & 1)) | 298 | #define is_power_of_4(x) is_power_of_2(x) && (ffs(x) & 1)) |
| 302 | 299 | ||
| 303 | /* | 300 | /* |
| 304 | * Set up a mapping for a block of I/O. | 301 | * Set up a mapping for a block of I/O. |
diff --git a/arch/ppc/mm/pgtable.c b/arch/ppc/mm/pgtable.c index 354a9408f0..82b06a1ef9 100644 --- a/arch/ppc/mm/pgtable.c +++ b/arch/ppc/mm/pgtable.c | |||
| @@ -313,11 +313,8 @@ void __init mapin_ram(void) | |||
| 313 | } | 313 | } |
| 314 | } | 314 | } |
| 315 | 315 | ||
| 316 | /* is x a power of 2? */ | ||
| 317 | #define is_power_of_2(x) ((x) != 0 && (((x) & ((x) - 1)) == 0)) | ||
| 318 | |||
| 319 | /* is x a power of 4? */ | 316 | /* is x a power of 4? */ |
| 320 | #define is_power_of_4(x) ((x) != 0 && (((x) & (x-1)) == 0) && (ffs(x) & 1)) | 317 | #define is_power_of_4(x) is_power_of_2(x) && (ffs(x) & 1)) |
| 321 | 318 | ||
| 322 | /* | 319 | /* |
| 323 | * Set up a mapping for a block of I/O. | 320 | * Set up a mapping for a block of I/O. |
diff --git a/arch/ppc/syslib/ppc85xx_rio.c b/arch/ppc/syslib/ppc85xx_rio.c index 05b0e94150..2b097800cd 100644 --- a/arch/ppc/syslib/ppc85xx_rio.c +++ b/arch/ppc/syslib/ppc85xx_rio.c | |||
| @@ -59,8 +59,6 @@ | |||
| 59 | #define DBELL_TID(x) (*(u8 *)(x + DOORBELL_TID_OFFSET)) | 59 | #define DBELL_TID(x) (*(u8 *)(x + DOORBELL_TID_OFFSET)) |
| 60 | #define DBELL_INF(x) (*(u16 *)(x + DOORBELL_INFO_OFFSET)) | 60 | #define DBELL_INF(x) (*(u16 *)(x + DOORBELL_INFO_OFFSET)) |
| 61 | 61 | ||
| 62 | #define is_power_of_2(x) (((x) & ((x) - 1)) == 0) | ||
| 63 | |||
| 64 | struct rio_atmu_regs { | 62 | struct rio_atmu_regs { |
| 65 | u32 rowtar; | 63 | u32 rowtar; |
| 66 | u32 pad1; | 64 | u32 pad1; |
diff --git a/drivers/net/gianfar_ethtool.c b/drivers/net/gianfar_ethtool.c index 6d71bea5e9..0d6943d670 100644 --- a/drivers/net/gianfar_ethtool.c +++ b/drivers/net/gianfar_ethtool.c | |||
| @@ -42,8 +42,6 @@ | |||
| 42 | 42 | ||
| 43 | #include "gianfar.h" | 43 | #include "gianfar.h" |
| 44 | 44 | ||
| 45 | #define is_power_of_2(x) ((x) != 0 && (((x) & ((x) - 1)) == 0)) | ||
| 46 | |||
| 47 | extern void gfar_start(struct net_device *dev); | 45 | extern void gfar_start(struct net_device *dev); |
| 48 | extern int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit); | 46 | extern int gfar_clean_rx_ring(struct net_device *dev, int rx_work_limit); |
| 49 | 47 | ||
diff --git a/include/linux/log2.h b/include/linux/log2.h index d02e1a547a..99922bedfc 100644 --- a/include/linux/log2.h +++ b/include/linux/log2.h | |||
| @@ -44,6 +44,17 @@ int __ilog2_u64(u64 n) | |||
| 44 | #endif | 44 | #endif |
| 45 | 45 | ||
| 46 | /* | 46 | /* |
| 47 | * Determine whether some value is a power of two, where zero is | ||
| 48 | * *not* considered a power of two. | ||
| 49 | */ | ||
| 50 | |||
| 51 | static inline __attribute__((const)) | ||
| 52 | bool is_power_of_2(unsigned long n) | ||
| 53 | { | ||
| 54 | return (n != 0 && ((n & (n - 1)) == 0)); | ||
| 55 | } | ||
| 56 | |||
| 57 | /* | ||
| 47 | * round up to nearest power of two | 58 | * round up to nearest power of two |
| 48 | */ | 59 | */ |
| 49 | static inline __attribute__((const)) | 60 | static inline __attribute__((const)) |
