x86/svm/asid: Introduce svm_invlpga()

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
This commit is contained in:
Christoph Egger committed 2011-04-13 14:14:59 +01:00
1 parent ac904f69e1
commit a222899f96
2 files changed
+10 -4

No files matched your search

+1 -4
View File
@@ -34,10 +34,7 @@ static inline void svm_asid_g_invlpg(struct vcpu *v, unsigned long g_vaddr)
{
#if 0
/* Optimization? */
asm volatile (".byte 0x0F,0x01,0xDF \n"
: /* output */
: /* input */
"a" (g_vaddr), "c"(v->arch.hvm_svm.vmcb->guest_asid) );
svm_invlpga(g_vaddr, v->arch.hvm_svm.vmcb->guest_asid);
#endif
/* Safe fallback. Take a new ASID. */
+9
View File
@@ -60,6 +60,15 @@ static inline void svm_vmsave(void *vmcb)
: : "a" (__pa(vmcb)) : "memory" );
}
static inline void svm_invlpga(unsigned long vaddr, uint32_t asid)
{
asm volatile (
".byte 0x0f,0x01,0xdf"
: /* output */
: /* input */
"a" (vaddr), "c" (asid));
}
unsigned long *svm_msrbit(unsigned long *msr_bitmap, uint32_t msr);
void __update_guest_eip(struct cpu_user_regs *regs, unsigned int inst_len);
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.