From: Paolo Bonzini Date: Tue, 16 Jul 2024 13:55:39 +0000 (-0400) Subject: Merge tag 'kvm-x86-svm-6.11' of https://github.com/kvm-x86/linux into HEAD X-Git-Tag: block-6.11-20240726~19^2~9 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=1229cbefa67969044fddd329ec498b4bbd0d32a1;p=linux-block.git Merge tag 'kvm-x86-svm-6.11' of https://github.com/kvm-x86/linux into HEAD KVM SVM changes for 6.11 - Make per-CPU save_area allocations NUMA-aware. - Force sev_es_host_save_area() to be inlined to avoid calling into an instrumentable function from noinstr code. --- 1229cbefa67969044fddd329ec498b4bbd0d32a1 diff --cc arch/x86/kvm/svm/svm.h index 0eb87bb6c5a8,8983eabf8f84..623426efacc0 --- a/arch/x86/kvm/svm/svm.h +++ b/arch/x86/kvm/svm/svm.h @@@ -735,14 -709,15 +741,20 @@@ void sev_hardware_unsetup(void) int sev_cpu_init(struct svm_cpu_data *sd); int sev_dev_get_attr(u32 group, u64 attr, u64 *val); extern unsigned int max_sev_asid; +void sev_handle_rmp_fault(struct kvm_vcpu *vcpu, gpa_t gpa, u64 error_code); +void sev_snp_init_protected_guest_state(struct kvm_vcpu *vcpu); +int sev_gmem_prepare(struct kvm *kvm, kvm_pfn_t pfn, gfn_t gfn, int max_order); +void sev_gmem_invalidate(kvm_pfn_t start, kvm_pfn_t end); +int sev_private_max_mapping_level(struct kvm *kvm, kvm_pfn_t pfn); #else - static inline struct page *snp_safe_alloc_page(struct kvm_vcpu *vcpu) { - return alloc_page(GFP_KERNEL_ACCOUNT | __GFP_ZERO); + static inline struct page *snp_safe_alloc_page_node(int node, gfp_t gfp) + { + return alloc_pages_node(node, gfp | __GFP_ZERO, 0); + } + + static inline struct page *snp_safe_alloc_page(void) + { + return snp_safe_alloc_page_node(numa_node_id(), GFP_KERNEL_ACCOUNT); } static inline void sev_free_vcpu(struct kvm_vcpu *vcpu) {}