mirror of
https://github.com/SerenityOS/serenity
synced 2024-09-06 08:56:40 +00:00
Kernel: Query OS-enabled CPUID features again at the end of cpu_setup()
For OSPKE this is a no-op as we don't enable PKU yet, but the state of the OSXSAVE flag might have changed if we enabled XSAVE.
This commit is contained in:
parent
87aabb5ef7
commit
62185452f0
|
@ -594,6 +594,14 @@ UNMAP_AFTER_INIT void Processor::cpu_setup()
|
|||
MSR sfmask_msr(MSR_SFMASK);
|
||||
sfmask_msr.set(rflags_mask);
|
||||
#endif
|
||||
|
||||
// Query OS-enabled CPUID features again, and set the flags if needed.
|
||||
CPUID processor_info(0x1);
|
||||
if (processor_info.ecx() & (1 << 27))
|
||||
m_features |= CPUFeature::OSXSAVE;
|
||||
CPUID extended_features(0x7);
|
||||
if (extended_features.ecx() & (1 << 4))
|
||||
m_features |= CPUFeature::OSPKE;
|
||||
}
|
||||
|
||||
UNMAP_AFTER_INIT void Processor::early_initialize(u32 cpu)
|
||||
|
|
Loading…
Reference in a new issue