Re: [PATCH] x86/microcode_intel_early.c: Get 32-bit physical address by __pa_nodebug()

2013-03-21 Thread H. Peter Anvin
On 03/21/2013 03:40 AM, Ingo Molnar wrote: > > * Fenghua Yu wrote: > >> +initrd_start_p = (unsigned long *)__pa_nodebug(&initrd_start); >> +initrd_start_addr = (unsigned long)__pa_nodebug(*initrd_start_p); > > We should probably use __pa_early() for that - aliased to __pa_nodebug(). >

Re: [PATCH] x86/microcode_intel_early.c: Get 32-bit physical address by __pa_nodebug()

2013-03-21 Thread Ingo Molnar
* Fenghua Yu wrote: > + initrd_start_p = (unsigned long *)__pa_nodebug(&initrd_start); > + initrd_start_addr = (unsigned long)__pa_nodebug(*initrd_start_p); We should probably use __pa_early() for that - aliased to __pa_nodebug(). That would self-document the purpose. Thanks,

Re: [PATCH] x86/microcode_intel_early.c: Get 32-bit physical address by __pa_nodebug()

2013-03-19 Thread Tetsuo Handa
Fenghua Yu wrote: > From: Fenghua Yu > > In 32-bit, __pa_symbol() in CONFIG_DEBUG_VIRTUAL accesses kernel data (e.g. > max_low_pfn) that haven't been setup yet in such early boot phase. To fix the > issue, __pa_nodebug() replaces __pa_symbol() to get a global symbol's physical > address. > > Sig

Re: [PATCH] x86/microcode_intel_early.c: Get 32-bit physical address by __pa_nodebug()

2013-03-19 Thread H. Peter Anvin
On 03/19/2013 04:48 PM, Yinghai Lu wrote: > > So do you mean we have to change all __pa_symbol before > setup.c::setup_arch/find_low_pfn_range ? > because only at that time max_low_pfn get setup. > No, I suspect the problem is that the debugging code fails to notice that max_low_pfn isn't set up

Re: [PATCH] x86/microcode_intel_early.c: Get 32-bit physical address by __pa_nodebug()

2013-03-19 Thread Yinghai Lu
On Tue, Mar 19, 2013 at 4:36 PM, Yu, Fenghua wrote: >> From: yhlu.ker...@gmail.com [mailto:yhlu.ker...@gmail.com] On Behalf Of >> Yinghai Lu >> On Tue, Mar 19, 2013 at 8:04 AM, Fenghua Yu >> wrote: >> > From: Fenghua Yu >> > >> > In 32-bit, __pa_symbol() in CONFIG_DEBUG_VIRTUAL accesses kernel d

RE: [PATCH] x86/microcode_intel_early.c: Get 32-bit physical address by __pa_nodebug()

2013-03-19 Thread Yu, Fenghua
> From: yhlu.ker...@gmail.com [mailto:yhlu.ker...@gmail.com] On Behalf Of > Yinghai Lu > On Tue, Mar 19, 2013 at 8:04 AM, Fenghua Yu > wrote: > > From: Fenghua Yu > > > > In 32-bit, __pa_symbol() in CONFIG_DEBUG_VIRTUAL accesses kernel data > (e.g. > > max_low_pfn) that haven't been setup yet in

Re: [PATCH] x86/microcode_intel_early.c: Get 32-bit physical address by __pa_nodebug()

2013-03-19 Thread H. Peter Anvin
On 03/19/2013 04:15 PM, Yinghai Lu wrote: > On Tue, Mar 19, 2013 at 8:04 AM, Fenghua Yu wrote: >> From: Fenghua Yu >> >> In 32-bit, __pa_symbol() in CONFIG_DEBUG_VIRTUAL accesses kernel data (e.g. >> max_low_pfn) that haven't been setup yet in such early boot phase. To fix the >> issue, __pa_node

Re: [PATCH] x86/microcode_intel_early.c: Get 32-bit physical address by __pa_nodebug()

2013-03-19 Thread Yinghai Lu
On Tue, Mar 19, 2013 at 8:04 AM, Fenghua Yu wrote: > From: Fenghua Yu > > In 32-bit, __pa_symbol() in CONFIG_DEBUG_VIRTUAL accesses kernel data (e.g. > max_low_pfn) that haven't been setup yet in such early boot phase. To fix the > issue, __pa_nodebug() replaces __pa_symbol() to get a global symb

[PATCH] x86/microcode_intel_early.c: Get 32-bit physical address by __pa_nodebug()

2013-03-19 Thread Fenghua Yu
From: Fenghua Yu In 32-bit, __pa_symbol() in CONFIG_DEBUG_VIRTUAL accesses kernel data (e.g. max_low_pfn) that haven't been setup yet in such early boot phase. To fix the issue, __pa_nodebug() replaces __pa_symbol() to get a global symbol's physical address. Signed-off-by: Fenghua Yu --- arch/