[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4B5A05A1.3040901@zytor.com>
Date: Fri, 22 Jan 2010 12:08:01 -0800
From: "H. Peter Anvin" <hpa@...or.com>
To: Joe Perches <joe@...ches.com>
CC: Christoph Lameter <cl@...ux-foundation.org>,
Yinghai Lu <yinghai@...nel.org>, Ingo Molnar <mingo@...e.hu>,
Thomas Gleixner <tglx@...utronix.de>,
Andrew Morton <akpm@...ux-foundation.org>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Jesse Barnes <jbarnes@...tuousgeek.org>,
linux-kernel@...r.kernel.org, linux-pci@...r.kernel.org
Subject: Re: [PATCH 24/38] move round_up/down to kernel.h
On 01/22/2010 11:28 AM, Joe Perches wrote:
> On Fri, 2010-01-22 at 08:52 -0600, Christoph Lameter wrote:
>> On Fri, 22 Jan 2010, Yinghai Lu wrote:
>>> +#define __round_mask(x,y) ((__typeof__(x))((y)-1))
>>> +#define round_up(x,y) ((((x)-1) | __round_mask(x,y))+1)
>>> +#define round_down(x,y) ((x) & ~__round_mask(x,y))
>> s/round/round_power2/
>
> s/round/round_power_of_2/
> BUILD_BUG_ON_NOT_POWER_OF_2
>
Uh... the whole reason why the classical rounding functions don't work
is that we're using it with non-constants, and therefore the compiler
doesn't know that we're restricted to powers of two (and therefore it
will generate divides.)
-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists