Re: [PATCH] Fix roundup_pow_of_two(1)

From: Adrian Bunk
Date: Mon Jun 04 2007 - 07:49:12 EST


On Thu, May 17, 2007 at 11:56:56PM +0200, Rolf Eike Beer wrote:
> Fix roundup_pow_of_two(1)
>
> 1 is a power of two, therefore roundup_pow_of_two(1) should return 1. It does
> in case the argument is a variable but in case it's a constant it behaves
> wrong and returns 0. Probably nobody ever did it so this was never noticed.

I'm not getting the problem.
2^0 = 1

> Signed-off-by: Rolf Eike Beer <eike-kernel@xxxxxxxxx>
>
> ---
> commit 01ceeffac83011f0b5021013cc4abd1c4f291df5
> tree 7da59df51617d7cebd55e4361019181645a17e10
> parent ab35916f807eb4f2019a208e96cb0bddbb91dfc3
> author Rolf Eike Beer <eike-kernel@xxxxxxxxx> Thu, 17 May 2007 23:43:54 +0200
> committer Rolf Eike Beer <eike-kernel@xxxxxxxxx> Thu, 17 May 2007 23:43:54 +0200
>
> include/linux/log2.h | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/include/linux/log2.h b/include/linux/log2.h
> index 57e641e..1b8a2c1 100644
> --- a/include/linux/log2.h
> +++ b/include/linux/log2.h
> @@ -159,7 +159,7 @@ unsigned long __roundup_pow_of_two(unsigned long n)
> #define roundup_pow_of_two(n) \
> ( \
> __builtin_constant_p(n) ? ( \
> - (n == 1) ? 0 : \
> + (n == 1) ? 1 : \
> (1UL << (ilog2((n) - 1) + 1)) \
> ) : \
> __roundup_pow_of_two(n) \

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/