Commit f1d84b59 authored by Borislav Petkov (AMD)'s avatar Borislav Petkov (AMD)
Browse files

x86/mm: Carve out INVLPG inline asm for use by others

parent d9bb4054
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -34,4 +34,8 @@ static inline void __tlb_remove_table(void *table)
	free_page_and_swap_cache(table);
}

static inline void invlpg(unsigned long addr)
{
	asm volatile("invlpg (%0)" ::"r" (addr) : "memory");
}
#endif /* _ASM_X86_TLB_H */
+2 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include <asm/cacheflush.h>
#include <asm/apic.h>
#include <asm/perf_event.h>
#include <asm/tlb.h>

#include "mm_internal.h"

@@ -1140,7 +1141,7 @@ STATIC_NOPV void native_flush_tlb_one_user(unsigned long addr)
	bool cpu_pcide;

	/* Flush 'addr' from the kernel PCID: */
	asm volatile("invlpg (%0)" ::"r" (addr) : "memory");
	invlpg(addr);

	/* If PTI is off there is no user PCID and nothing to flush. */
	if (!static_cpu_has(X86_FEATURE_PTI))