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

From: H. Peter Anvin
Date: Mon Jun 29 2009 - 21:45:40 EST


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.

--
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/