Re: [PATCH 2/2] x86/mtrr: Refactor PAT initialization code

From: Borislav Petkov
Date: Fri Mar 11 2016 - 04:24:32 EST


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.