@@ -103,7 +103,8 @@ static void do_tlb_flush(void)
void switch_cr3_cr4(unsigned long cr3, unsigned long cr4)
{
- unsigned long flags, old_cr4, old_pcid;
+ unsigned long flags, old_cr4;
+ unsigned int old_pcid;
u32 t;
/* This non-reentrant function is sometimes called in interrupt context. */
@@ -292,7 +292,7 @@ static inline unsigned long cr3_pa(unsig
return cr3 & X86_CR3_ADDR_MASK;
}
-static inline unsigned long cr3_pcid(unsigned long cr3)
+static inline unsigned int cr3_pcid(unsigned long cr3)
{
return cr3 & X86_CR3_PCID_MASK;
}
There's no need for it to be 64 bits wide - only the low twelve bits of CR3 hold the PCID. Signed-off-by: Jan Beulich <jbeulich@suse.com>