Messages in this thread | | | Date | Tue, 19 Mar 2013 16:15:09 -0700 | Subject | Re: [PATCH] x86/microcode_intel_early.c: Get 32-bit physical address by __pa_nodebug() | From | Yinghai Lu <> |
| |
On Tue, Mar 19, 2013 at 8:04 AM, Fenghua Yu <fenghua.yu@intel.com> wrote: > From: Fenghua Yu <fenghua.yu@intel.com> > > 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.
That explanation is not precise.
__phys_addr in 32bit when DEBUG_VIRTUAL is set, it does have check /* max_low_pfn is set early, but not _that_ early */ if (max_low_pfn) { .... } the reason should be: in head_32.S, 32bit flat mode, you need to switch to phys addr to access global variable max_low_pfn.
Thanks
Yinghai
| |