Re: clean way to support >32bit addr on 32bit CPU

From: Linus Torvalds
Date: Mon Jan 10 2005 - 19:25:32 EST




On Mon, 10 Jan 2005, Dave wrote:
>
> After all said and done, the struct resource members start and end
> must support 64bit integer values in order to work. On a 64bit arch
> that would be fine since unsigned long is 64bit. However on a 32bit
> arch one must use unsigned long long to get 64bit.

We really should make "struct resource" use u64's. It's wrong even on x86,
but we've never seen any real problems in practice, so we've had little
reason to bother.

This has definitely come up before, maybe there's even some old patch
floating around. It should be as easy as just fixing up "start/end" to be
"u64" (and perhaps move them to the beginning of the struct to make sure
packing is ok on all architectures), and fixing any fall-out.

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