Re: [BUG 2.6.31-rc1] HIGHMEM64G causes hang in PCI init on 32-bit x86

H. Peter Anvin
2009-06-30T23:21:40Z

Yinghai Lu wrote:
> Linus Torvalds wrote:
>> On Tue, 30 Jun 2009, Linus Torvalds wrote:
>>> I don't see any single-use trick then, and so it needs the whole statement
>>> expression mess.
>> Hmm. Does (((x)-1) | mask)+1) work?
>>
>> I haven't thought it fully through, but that _should_ take care of the
>> "already aligned" case, no?
>
> yes. that is right.
>
> then how about
> roundup(x,y)
> round_up(x,y)
>
> roundup doesn't need y is 2^n
> but round_up does need y is 2^n, and only for x86
>

We should definitely move whatever to global. However, I do think it is
valuable to have something that can avoid divides even if the argument
is not necessarily a constant.

-hpa