tree da3d966ea5889ef16d11bcf3fff06239b22cc8ad
parent f3e707413dbe3920a972d0c2b51175180e7de36b
parent 8c2e8ac8ad4be68409e806ce1cc78fc7a04539f3
author Paolo Bonzini <pbonzini@redhat.com> 1679925796 -0400
committer Paolo Bonzini <pbonzini@redhat.com> 1679925796 -0400
mergetag object 8c2e8ac8ad4be68409e806ce1cc78fc7a04539f3
 type commit
 tag kvmarm-fixes-6.3-2
 tagger Oliver Upton <oliver.upton@linux.dev> 1679020709 -0700
 
 KVM/arm64 fixes for 6.3, part #2
 
 Fixes for a rather interesting set of bugs relating to the MMU:
 
  - Read the MMU notifier seq before dropping the mmap lock to guard
    against reading a potentially stale VMA
 
  - Disable interrupts when walking user page tables to protect against
    the page table being freed
 
  - Read the MTE permissions for the VMA within the mmap lock critical
    section, avoiding the use of a potentally stale VMA pointer
 
 Additionally, some fixes targeting the vPMU:
 
  - Return the sum of the current perf event value and PMC snapshot for
    reads from userspace
 
  - Don't save the value of guest writes to PMCR_EL0.{C,P}, which could
    otherwise lead to userspace erroneously resetting the vPMU during VM
    save/restore
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSNXHjWXuzMZutrKNKivnWIJHzdFgUCZBPXKAAKCRCivnWIJHzd
 Ftz7AP9+mxPPS2h9ly/wV+rCR6gg/ZqemXf+0rGJZWgkscUrbAD/XGnKhlAZZZeW
 /9qoEtWnAguhz8vOg8oPbtJ2c2reDwk=
 =RcGY
 -----END PGP SIGNATURE-----

Merge tag 'kvmarm-fixes-6.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD

KVM/arm64 fixes for 6.3, part #2

Fixes for a rather interesting set of bugs relating to the MMU:

 - Read the MMU notifier seq before dropping the mmap lock to guard
   against reading a potentially stale VMA

 - Disable interrupts when walking user page tables to protect against
   the page table being freed

 - Read the MTE permissions for the VMA within the mmap lock critical
   section, avoiding the use of a potentally stale VMA pointer

Additionally, some fixes targeting the vPMU:

 - Return the sum of the current perf event value and PMC snapshot for
   reads from userspace

 - Don't save the value of guest writes to PMCR_EL0.{C,P}, which could
   otherwise lead to userspace erroneously resetting the vPMU during VM
   save/restore
