|
@@ -131,7 +131,12 @@ static inline unsigned long build_cr3(pgd_t *pgd, u16 asid)
|
|
|
static inline unsigned long build_cr3_noflush(pgd_t *pgd, u16 asid)
|
|
|
{
|
|
|
VM_WARN_ON_ONCE(asid > MAX_ASID_AVAILABLE);
|
|
|
- VM_WARN_ON_ONCE(!this_cpu_has(X86_FEATURE_PCID));
|
|
|
+ /*
|
|
|
+ * Use boot_cpu_has() instead of this_cpu_has() as this function
|
|
|
+ * might be called during early boot. This should work even after
|
|
|
+ * boot because all CPU's the have same capabilities:
|
|
|
+ */
|
|
|
+ VM_WARN_ON_ONCE(!boot_cpu_has(X86_FEATURE_PCID));
|
|
|
return __sme_pa(pgd) | kern_pcid(asid) | CR3_NOFLUSH;
|
|
|
}
|
|
|
|