1. 16 May, 2022 7 commits
    • Marc Zyngier's avatar
      Merge branch kvm-arm64/misc-5.19 into kvmarm-master/next · 822ca7f8
      Marc Zyngier authored
      * kvm-arm64/misc-5.19:
        : .
        : Misc fixes and general improvements for KVMM/arm64:
        :
        : - Better handle out of sequence sysregs in the global tables
        :
        : - Remove a couple of unnecessary loads from constant pool
        :
        : - Drop unnecessary pKVM checks
        :
        : - Add all known M1 implementations to the SEIS workaround
        :
        : - Cleanup kerneldoc warnings
        : .
        KVM: arm64: vgic-v3: List M1 Pro/Max as requiring the SEIS workaround
        KVM: arm64: pkvm: Don't mask already zeroed FEAT_SVE
        KVM: arm64: pkvm: Drop unnecessary FP/SIMD trap handler
        KVM: arm64: nvhe: Eliminate kernel-doc warnings
        KVM: arm64: Avoid unnecessary absolute addressing via literals
        KVM: arm64: Print emulated register table name when it is unsorted
        KVM: arm64: Don't BUG_ON() if emulated register table is unsorted
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      822ca7f8
    • Marc Zyngier's avatar
      Merge branch kvm-arm64/per-vcpu-host-pmu-data into kvmarm-master/next · 8794b4f5
      Marc Zyngier authored
      * kvm-arm64/per-vcpu-host-pmu-data:
        : .
        : Pass the host PMU state in the vcpu to avoid the use of additional
        : shared memory between EL1 and EL2 (this obviously only applies
        : to nVHE and Protected setups).
        :
        : Patches courtesy of Fuad Tabba.
        : .
        KVM: arm64: pmu: Restore compilation when HW_PERF_EVENTS isn't selected
        KVM: arm64: Reenable pmu in Protected Mode
        KVM: arm64: Pass pmu events to hyp via vcpu
        KVM: arm64: Repack struct kvm_pmu to reduce size
        KVM: arm64: Wrapper for getting pmu_events
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      8794b4f5
    • Marc Zyngier's avatar
      Merge branch kvm-arm64/vgic-invlpir into kvmarm-master/next · ec2cff6c
      Marc Zyngier authored
      * kvm-arm64/vgic-invlpir:
        : .
        : Implement MMIO-based LPI invalidation for vGICv3.
        : .
        KVM: arm64: vgic-v3: Advertise GICR_CTLR.{IR, CES} as a new GICD_IIDR revision
        KVM: arm64: vgic-v3: Implement MMIO-based LPI invalidation
        KVM: arm64: vgic-v3: Expose GICR_CTLR.RWP when disabling LPIs
        irqchip/gic-v3: Exposes bit values for GICR_CTLR.{IR, CES}
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      ec2cff6c
    • Marc Zyngier's avatar
      Merge branch kvm-arm64/psci-suspend into kvmarm-master/next · 3b8e21e3
      Marc Zyngier authored
      * kvm-arm64/psci-suspend:
        : .
        : Add support for PSCI SYSTEM_SUSPEND and allow userspace to
        : filter the wake-up events.
        :
        : Patches courtesy of Oliver.
        : .
        Documentation: KVM: Fix title level for PSCI_SUSPEND
        selftests: KVM: Test SYSTEM_SUSPEND PSCI call
        selftests: KVM: Refactor psci_test to make it amenable to new tests
        selftests: KVM: Use KVM_SET_MP_STATE to power off vCPU in psci_test
        selftests: KVM: Create helper for making SMCCC calls
        selftests: KVM: Rename psci_cpu_on_test to psci_test
        KVM: arm64: Implement PSCI SYSTEM_SUSPEND
        KVM: arm64: Add support for userspace to suspend a vCPU
        KVM: arm64: Return a value from check_vcpu_requests()
        KVM: arm64: Rename the KVM_REQ_SLEEP handler
        KVM: arm64: Track vCPU power state using MP state values
        KVM: arm64: Dedupe vCPU power off helpers
        KVM: arm64: Don't depend on fallthrough to hide SYSTEM_RESET2
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      3b8e21e3
    • Marc Zyngier's avatar
      Merge branch kvm-arm64/hcall-selection into kvmarm-master/next · 0586e28a
      Marc Zyngier authored
      * kvm-arm64/hcall-selection:
        : .
        : Introduce a new set of virtual sysregs for userspace to
        : select the hypercalls it wants to see exposed to the guest.
        :
        : Patches courtesy of Raghavendra and Oliver.
        : .
        KVM: arm64: Fix hypercall bitmap writeback when vcpus have already run
        KVM: arm64: Hide KVM_REG_ARM_*_BMAP_BIT_COUNT from userspace
        Documentation: Fix index.rst after psci.rst renaming
        selftests: KVM: aarch64: Add the bitmap firmware registers to get-reg-list
        selftests: KVM: aarch64: Introduce hypercall ABI test
        selftests: KVM: Create helper for making SMCCC calls
        selftests: KVM: Rename psci_cpu_on_test to psci_test
        tools: Import ARM SMCCC definitions
        Docs: KVM: Add doc for the bitmap firmware registers
        Docs: KVM: Rename psci.rst to hypercalls.rst
        KVM: arm64: Add vendor hypervisor firmware register
        KVM: arm64: Add standard hypervisor firmware register
        KVM: arm64: Setup a framework for hypercall bitmap firmware registers
        KVM: arm64: Factor out firmware register handling from psci.c
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      0586e28a
    • Marc Zyngier's avatar
      KVM: arm64: Fix hypercall bitmap writeback when vcpus have already run · 528ada28
      Marc Zyngier authored
      We generally want to disallow hypercall bitmaps being changed
      once vcpus have already run. But we must allow the write if
      the written value is unchanged so that userspace can rewrite
      the register file on reboot, for example.
      
      Without this, a QEMU-based VM will fail to reboot correctly.
      
      The original code was correct, and it is me that introduced
      the regression.
      
      Fixes: 05714cab ("KVM: arm64: Setup a framework for hypercall bitmap firmware registers")
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      528ada28
    • Marc Zyngier's avatar
      KVM: arm64: pmu: Restore compilation when HW_PERF_EVENTS isn't selected · 20492a62
      Marc Zyngier authored
      Moving kvm_pmu_events into the vcpu (and refering to it) broke the
      somewhat unusual case where the kernel has no support for a PMU
      at all.
      
      In order to solve this, move things around a bit so that we can
      easily avoid refering to the pmu structure outside of PMU-aware
      code. As a bonus, pmu.c isn't compiled in when HW_PERF_EVENTS
      isn't selected.
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Reviewed-by: default avatarFuad Tabba <tabba@google.com>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/202205161814.KQHpOzsJ-lkp@intel.com
      20492a62
  2. 15 May, 2022 6 commits
  3. 10 May, 2022 2 commits
  4. 06 May, 2022 2 commits
    • Randy Dunlap's avatar
      KVM: arm64: nvhe: Eliminate kernel-doc warnings · bd61395a
      Randy Dunlap authored
      Don't use begin-kernel-doc notation (/**) for comments that are not in
      kernel-doc format.
      
      This prevents these kernel-doc warnings:
      
      arch/arm64/kvm/hyp/nvhe/switch.c:126: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
       * Disable host events, enable guest events
      arch/arm64/kvm/hyp/nvhe/switch.c:146: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
       * Disable guest events, enable host events
      arch/arm64/kvm/hyp/nvhe/switch.c:164: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
       * Handler for protected VM restricted exceptions.
      arch/arm64/kvm/hyp/nvhe/switch.c:176: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
       * Handler for protected VM MSR, MRS or System instruction execution in AArch64.
      arch/arm64/kvm/hyp/nvhe/switch.c:196: warning: Function parameter or member 'vcpu' not described in 'kvm_handle_pvm_fpsimd'
      arch/arm64/kvm/hyp/nvhe/switch.c:196: warning: Function parameter or member 'exit_code' not described in 'kvm_handle_pvm_fpsimd'
      arch/arm64/kvm/hyp/nvhe/switch.c:196: warning: expecting prototype for Handler for protected floating(). Prototype was for kvm_handle_pvm_fpsimd() instead
      
      Fixes: 09cf57eb ("KVM: arm64: Split hyp/switch.c to VHE/nVHE")
      Fixes: 1423afcb ("KVM: arm64: Trap access to pVM restricted features")
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Cc: Fuad Tabba <tabba@google.com>
      Cc: Marc Zyngier <maz@kernel.org>
      Cc: David Brazdil <dbrazdil@google.com>
      Cc: James Morse <james.morse@arm.com>
      Cc: Alexandru Elisei <alexandru.elisei@arm.com>
      Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: kvmarm@lists.cs.columbia.edu
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/20220430050123.2844-1-rdunlap@infradead.org
      bd61395a
    • Ard Biesheuvel's avatar
      KVM: arm64: Avoid unnecessary absolute addressing via literals · 7ee74cc7
      Ard Biesheuvel authored
      There are a few cases in the nVHE code where we take the absolute
      address of a symbol via a literal pool entry, and subsequently translate
      it to another address space (PA, kimg VA, kernel linear VA, etc).
      Originally, this literal was needed because we relied on a different
      translation for absolute references, but this is no longer the case, so
      we can simply use relative addressing instead. This removes a couple of
      RELA entries pointing into the .text segment.
      Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/20220428140350.3303481-1-ardb@kernel.org
      7ee74cc7
  5. 05 May, 2022 1 commit
  6. 04 May, 2022 22 commits