[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <48D29741.4070404@goop.org>
Date: Thu, 18 Sep 2008 11:00:33 -0700
From: Jeremy Fitzhardinge <jeremy@...p.org>
To: Jan Beulich <jbeulich@...ell.com>
CC: Ingo Molnar <mingo@...e.hu>, tglx@...utronix.de,
linux-kernel@...r.kernel.org, hpa@...or.com
Subject: Re: [PATCH] x86: x86_{phys,virt}_bits field also for i386 (v3)
Jan Beulich wrote:
>>>> Ingo Molnar <mingo@...e.hu> 18.09.08 13:20 >>>
>>>>
>> * Ingo Molnar <mingo@...e.hu> wrote:
>>
>>
>>> * Jan Beulich <jbeulich@...ell.com> wrote:
>>>
>>>
>>>> I'm really sorry for that, yet another merge oversight (not caught
>>>> because only re-tested on x86-64). Here's a better one.
>>>>
>>> ah, i see, the delta below. Nasty.
>>>
>> the attached config fails in a similar way.
>>
>
> Hmm, yes, other than in .27, -tip derives resource_size_t from phys_addr_t,
> regardless of CONFIG_RESOURCES_64BIT (and the config you provided
> is a non-PAE one). I have to question that change, which I'm sure is
> responsible for this failure. If there's a good reason for this, then
> phys_addr_valid() should use phys_addr_t as its parameter type (and
> so should ioremap() & Co), and the pre-processor conditional should
> then change to depend on CONFIG_PHYS_ADDR_T_64BIT. Since ioremap()
> would need to change first, I'd have to withdraw the patch until that
> gets sorted out.
I take it we're talking about this chunk:
-static inline int phys_addr_valid(unsigned long addr)
+static inline int phys_addr_valid(resource_size_t addr)
{
- return addr < (1UL << boot_cpu_data.x86_phys_bits);
+#ifdef CONFIG_RESOURCES_64BIT
+ return !(addr >> boot_cpu_data.x86_phys_bits);
+#else
+ return 1;
+#endif
Is x86_phys_bits defined to be the actual number of address lines poking
out of the CPU package, or the number of address bits we can
meaningfully put into a pte?
I would say the simplest thing to do here is be explicit:
if (sizeof(addr) == sizeof(u64))
return !(addr >> boot_cpu_data.x86_phys_bits);
else
return 1;
That's not ideal, but I guess its good enough. I assume x86_phys_bits
can never be less than 32?
J
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists