FAILED: patch "[PATCH] KVM: Play nice with read-only memslots when querying host" failed to apply to 5.5-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.5-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 42cde48b2d39772dba47e680781a32a6c4b7dc33 Mon Sep 17 00:00:00 2001
From: Sean Christopherson <[email protected]>
Date: Wed, 8 Jan 2020 12:24:38 -0800
Subject: [PATCH] KVM: Play nice with read-only memslots when querying host
page size
Avoid the "writable" check in __gfn_to_hva_many(), which will always fail on read-only memslots due to gfn_to_hva() assuming writes. Functionally, this allows x86 to create large mappings for read-only memslots that are backed by HugeTLB mappings.
Note, the changelog for commit 05da45583de9 ("KVM: MMU: large page support") states "If the largepage contains write-protected pages, a large pte is not used.", but "write-protected" refers to pages that are temporarily read-only, e.g. read-only memslots didn't even exist at the time.
virt/kvm/kvm_main.c +1 -1
@@ -1409,7 +1409,7 @@ unsigned long kvm_host_page_size(struct kvm_vcpu *vcpu, gfn_t gfn) size =PAGE_SIZE ; - addr =kvm_vcpu_gfn_to_hva (vcpu, gfn); + addr =kvm_vcpu_gfn_to_hva_prot (vcpu, gfn,NULL );if (kvm_is_error_hva (addr))return PAGE_SIZE ;
Sasha Levin
maintainerQuoted 29 lines · On Sun, Feb 09, 2020 at 01:36:52PM +0100, [email protected] wrote:
The patch below does not apply to the 5.5-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From
42cde48b2d39772dba47e680781a32a6c4b7dc33Mon Sep 17 00:00:00 2001
From: Sean Christopherson <[email protected]>
Date: Wed, 8 Jan 2020 12:24:38 -0800
Subject: [PATCH] KVM: Play nice with read-only memslots when querying host page sizeAvoid the "writable" check in
__gfn_to_hva_many(), which will always fail on read-only memslots due togfn_to_hva()assuming writes. Functionally, this allows x86 to create large mappings for read-only memslots that are backed by HugeTLB mappings.Note, the changelog for commit
05da45583de9("KVM: MMU: large page support") states "If the largepage contains write-protected pages, a large pte is not used.", but "write-protected" refers to pages that are temporarily read-only, e.g. read-only memslots didn't even exist at the time.
Quoted 5 lines
Fixes 4d8b81abc47b ("KVM: introduce readonly memslot")Signed-off-by Sean Christopherson <[email protected]>[Redone using kvm_vcpu_gfn_to_memslot_prot. - Paolo]Signed-off-by Paolo Bonzini <[email protected]>
I'm not sure what was wrong with 5.5-4.14, it applied/built fine for me.
For 4.9 and 4.4, it depends on f9b84e19221e ("KVM: Use vcpu-specific gva->hva translation when querying host page size") which wasn't backported that far, so this one should also be backported to 4.9 and 4.4.
Signature · 2 lines
Thanks, Sasha