mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-23 05:56:14 -04:00
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull kvm fixes from Paolo Bonzini:
"A bit late... I got sidetracked by back-from-vacation routines and
conferences. But most of these patches are already a few weeks old and
things look more calm on the mailing list than what this pull request
would suggest.
x86:
- missing TLB flush
- nested virtualization fixes for SMM (secure boot on nested
hypervisor) and other nested SVM fixes
- syscall fuzzing fixes
- live migration fix for AMD SEV
- mirror VMs now work for SEV-ES too
- fixes for reset
- possible out-of-bounds access in IOAPIC emulation
- fix enlightened VMCS on Windows 2022
ARM:
- Add missing FORCE target when building the EL2 object
- Fix a PMU probe regression on some platforms
Generic:
- KCSAN fixes
selftests:
- random fixes, mostly for clang compilation"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (43 commits)
selftests: KVM: Explicitly use movq to read xmm registers
selftests: KVM: Call ucall_init when setting up in rseq_test
KVM: Remove tlbs_dirty
KVM: X86: Synchronize the shadow pagetable before link it
KVM: X86: Fix missed remote tlb flush in rmap_write_protect()
KVM: x86: nSVM: don't copy virt_ext from vmcb12
KVM: x86: nSVM: test eax for 4K alignment for GP errata workaround
KVM: x86: selftests: test simultaneous uses of V_IRQ from L1 and L0
KVM: x86: nSVM: restore int_vector in svm_clear_vintr
kvm: x86: Add AMD PMU MSRs to msrs_to_save_all[]
KVM: x86: nVMX: re-evaluate emulation_required on nested VM exit
KVM: x86: nVMX: don't fail nested VM entry on invalid guest state if !from_vmentry
KVM: x86: VMX: synthesize invalid VM exit when emulating invalid guest state
KVM: x86: nSVM: refactor svm_leave_smm and smm_enter_smm
KVM: x86: SVM: call KVM_REQ_GET_NESTED_STATE_PAGES on exit from SMM mode
KVM: x86: reset pdptrs_from_userspace when exiting smm
KVM: x86: nSVM: restore the L1 host state prior to resuming nested guest on SMM exit
KVM: nVMX: Filter out all unsupported controls when eVMCS was activated
KVM: KVM: Use cpumask_available() to check for NULL cpumask when kicking vCPUs
KVM: Clean up benign vcpu->cpu data races when kicking vCPUs
...
This commit is contained in:
@@ -90,6 +90,8 @@ enum vm_mem_backing_src_type {
|
||||
NUM_SRC_TYPES,
|
||||
};
|
||||
|
||||
#define DEFAULT_VM_MEM_SRC VM_MEM_SRC_ANONYMOUS
|
||||
|
||||
struct vm_mem_backing_src_alias {
|
||||
const char *name;
|
||||
uint32_t flag;
|
||||
@@ -102,7 +104,7 @@ size_t get_trans_hugepagesz(void);
|
||||
size_t get_def_hugetlb_pagesz(void);
|
||||
const struct vm_mem_backing_src_alias *vm_mem_backing_src_alias(uint32_t i);
|
||||
size_t get_backing_src_pagesz(uint32_t i);
|
||||
void backing_src_help(void);
|
||||
void backing_src_help(const char *flag);
|
||||
enum vm_mem_backing_src_type parse_backing_src_type(const char *type_name);
|
||||
long get_run_delay(void);
|
||||
|
||||
|
||||
@@ -312,37 +312,37 @@ static inline void set_xmm(int n, unsigned long val)
|
||||
}
|
||||
}
|
||||
|
||||
typedef unsigned long v1di __attribute__ ((vector_size (8)));
|
||||
#define GET_XMM(__xmm) \
|
||||
({ \
|
||||
unsigned long __val; \
|
||||
asm volatile("movq %%"#__xmm", %0" : "=r"(__val) : : #__xmm); \
|
||||
__val; \
|
||||
})
|
||||
|
||||
static inline unsigned long get_xmm(int n)
|
||||
{
|
||||
assert(n >= 0 && n <= 7);
|
||||
|
||||
register v1di xmm0 __asm__("%xmm0");
|
||||
register v1di xmm1 __asm__("%xmm1");
|
||||
register v1di xmm2 __asm__("%xmm2");
|
||||
register v1di xmm3 __asm__("%xmm3");
|
||||
register v1di xmm4 __asm__("%xmm4");
|
||||
register v1di xmm5 __asm__("%xmm5");
|
||||
register v1di xmm6 __asm__("%xmm6");
|
||||
register v1di xmm7 __asm__("%xmm7");
|
||||
switch (n) {
|
||||
case 0:
|
||||
return (unsigned long)xmm0;
|
||||
return GET_XMM(xmm0);
|
||||
case 1:
|
||||
return (unsigned long)xmm1;
|
||||
return GET_XMM(xmm1);
|
||||
case 2:
|
||||
return (unsigned long)xmm2;
|
||||
return GET_XMM(xmm2);
|
||||
case 3:
|
||||
return (unsigned long)xmm3;
|
||||
return GET_XMM(xmm3);
|
||||
case 4:
|
||||
return (unsigned long)xmm4;
|
||||
return GET_XMM(xmm4);
|
||||
case 5:
|
||||
return (unsigned long)xmm5;
|
||||
return GET_XMM(xmm5);
|
||||
case 6:
|
||||
return (unsigned long)xmm6;
|
||||
return GET_XMM(xmm6);
|
||||
case 7:
|
||||
return (unsigned long)xmm7;
|
||||
return GET_XMM(xmm7);
|
||||
}
|
||||
|
||||
/* never reached */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user