On Thu, Dec 17, 2020 at 02:46:13PM +0100, Maciej S. Szmigiero wrote: > From: "Maciej S. Szmigiero" <maciej.szmigiero@xxxxxxxxxx> > > Commit cae7ed3c2cb0 ("KVM: x86: Refactor the MMIO SPTE generation handling") > cleaned up the computation of MMIO generation SPTE masks, however it > introduced a bug how the upper part was encoded: > SPTE bits 52-61 were supposed to contain bits 10-19 of the current > generation number, however a missing shift encoded bits 1-10 there instead > (mostly duplicating the lower part of the encoded generation number that > then consisted of bits 1-9). > > In the meantime, the upper part was shrunk by one bit and moved by > subsequent commits to become an upper half of the encoded generation number > (bits 9-17 of bits 0-17 encoded in a SPTE). > > In addition to the above, commit 56871d444bc4 ("KVM: x86: fix overlap between SPTE_MMIO_MASK and generation") > has changed the SPTE bit range assigned to encode the generation number and > the total number of bits encoded but did not update them in the comment > attached to their defines, nor in the KVM MMU doc. > Let's do it here, too, since it is too trivial thing to warrant a separate > commit. > > This is a backport of the upstream commit for 5.4.x stable series, which > has KVM docs still in a raw text format and the x86 KVM MMU isn't yet split > into separate files under "mmu" directory. > Other than that, it's a straightforward port. > > Fixes: cae7ed3c2cb0 ("KVM: x86: Refactor the MMIO SPTE generation handling") > Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@xxxxxxxxxx> > [Reorganize macros so that everything is computed from the bit ranges. - Paolo] > Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> > (cherry picked from commit 34c0f6f2695a2db81e09a3ab7bdb2853f45d4d3d) > Cc: stable@xxxxxxxxxxxxxxx # 5.4.x > --- > Documentation/virt/kvm/mmu.txt | 2 +- > arch/x86/kvm/mmu.c | 29 ++++++++++++++++++++--------- > 2 files changed, 21 insertions(+), 10 deletions(-) Thanks for both backports! greg k-h