On Thu, Mar 10, 2016 at 09:45:46PM -0700, Toshi Kani wrote: > MTRR manages PAT initialization as it implements a rendezvous > handler that initializes PAT as part of MTRR initialization. > > When CPU does not support MTRR, ex. qemu32 virtual CPU, MTRR > simply skips PAT init, which causes PAT left enabled without > initialization. Also, get_mtrr_state() calls pat_init() on > BSP even if MTRR is disabled by its MSR. This causes pat_init() > be called on BSP only.
So I don't understand what all this hoopla is all about: why can't you simply call pat_disable() in mtrr_ap_init() and be done with it? void mtrr_ap_init(void) { if (!mtrr_enabled()) { pat_disable(); return; } ? -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply.