Re: [PATCH 24/38] move round_up/down to kernel.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux