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

H. Peter Anvin
2009-06-30T01:45:35Z

Linus Torvalds wrote:
> ...
> end = round_up(start, ram_alignment(start)) - 1;
> if (end > MAX_RESOURCE_SIZE)
> end = MAX_RESOURCE_SIZE;
> if (start > end)
> continue;
>
> Because otherwise we'll just be ignoring resources that cross the resource
> size boundary, which sounds wrong.
>
> We _could_ have a RAM resource that crosses the 4GB boundary, after all.
>

We could, but the *alignment pad* shouldn't be able to cross a
power-of-two boundary ("end" is always an aligned-up version of "start").

> That said, I have to admit that I'm getting tired of these bugs that only
> happen when we have a 32-bit resource_size_t. So I can understand the
> attraction to just forcing it to 64-bit and forgetting about these
> irritating issues.

Probably would be worth figuring out just how much it would be.

-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.