From: Amit Daniel Kachhap <amit.kachhap@arm.com> To: linux-arm-kernel@lists.infradead.org Cc: Christoffer Dall <christoffer.dall@arm.com>, Marc Zyngier <marc.zyngier@arm.com>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com>, Andrew Jones <drjones@redhat.com>, Dave Martin <Dave.Martin@arm.com>, Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>, kvmarm@lists.cs.columbia.edu, Kristina Martsenko <kristina.martsenko@arm.com>, linux-kernel@vger.kernel.org, Amit Daniel Kachhap <amit.kachhap@arm.com>, Mark Rutland <mark.rutland@arm.com>, James Morse <james.morse@arm.com>, Julien Thierry <julien.thierry@arm.com> Subject: [PATCH v7 6/10] KVM: arm64: Add vcpu feature flags to control ptrauth accessibility Date: Tue, 19 Mar 2019 14:00:39 +0530 [thread overview] Message-ID: <1552984243-7689-7-git-send-email-amit.kachhap@arm.com> (raw) In-Reply-To: <1552984243-7689-1-git-send-email-amit.kachhap@arm.com> Since Pointer authentication will be enabled or disabled on a per-vcpu basis, vcpu feature flags are added in order to know which vcpus have it enabled from userspace. This features will allow the KVM guest to allow the handling of pointer authentication instructions or to treat them as undefined if not set. The helper macro added checks the feature flag along with other conditions such as VHE mode present and system supports pointer address/generic authentication. Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Christoffer Dall <christoffer.dall@arm.com> Cc: kvmarm@lists.cs.columbia.edu --- arch/arm64/include/asm/kvm_host.h | 8 +++++++- arch/arm64/include/uapi/asm/kvm.h | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index e3ccd7b..9dd2918 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -45,7 +45,7 @@ #define KVM_MAX_VCPUS VGIC_V3_MAX_CPUS -#define KVM_VCPU_MAX_FEATURES 4 +#define KVM_VCPU_MAX_FEATURES 6 #define KVM_REQ_SLEEP \ KVM_ARCH_REQ_FLAGS(0, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP) @@ -491,6 +491,12 @@ static inline bool kvm_arch_requires_vhe(void) return false; } +#define vcpu_has_ptrauth(vcpu) (has_vhe() && \ + system_supports_address_auth() && \ + system_supports_generic_auth() && \ + test_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, vcpu->arch.features) && \ + test_bit(KVM_ARM_VCPU_PTRAUTH_GENERIC, vcpu->arch.features)) + static inline void kvm_arch_hardware_unsetup(void) {} static inline void kvm_arch_sync_events(struct kvm *kvm) {} static inline void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu) {} diff --git a/arch/arm64/include/uapi/asm/kvm.h b/arch/arm64/include/uapi/asm/kvm.h index 97c3478..8806f71 100644 --- a/arch/arm64/include/uapi/asm/kvm.h +++ b/arch/arm64/include/uapi/asm/kvm.h @@ -102,6 +102,8 @@ struct kvm_regs { #define KVM_ARM_VCPU_EL1_32BIT 1 /* CPU running a 32bit VM */ #define KVM_ARM_VCPU_PSCI_0_2 2 /* CPU uses PSCI v0.2 */ #define KVM_ARM_VCPU_PMU_V3 3 /* Support guest PMUv3 */ +#define KVM_ARM_VCPU_PTRAUTH_ADDRESS 4 /* VCPU uses address authentication */ +#define KVM_ARM_VCPU_PTRAUTH_GENERIC 5 /* VCPU uses generic authentication */ struct kvm_vcpu_init { __u32 target; -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Amit Daniel Kachhap <amit.kachhap@arm.com> To: linux-arm-kernel@lists.infradead.org Cc: Mark Rutland <mark.rutland@arm.com>, Andrew Jones <drjones@redhat.com>, Julien Thierry <julien.thierry@arm.com>, Marc Zyngier <marc.zyngier@arm.com>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com>, Christoffer Dall <christoffer.dall@arm.com>, Kristina Martsenko <kristina.martsenko@arm.com>, kvmarm@lists.cs.columbia.edu, James Morse <james.morse@arm.com>, Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>, Amit Daniel Kachhap <amit.kachhap@arm.com>, Dave Martin <Dave.Martin@arm.com>, linux-kernel@vger.kernel.org Subject: [PATCH v7 6/10] KVM: arm64: Add vcpu feature flags to control ptrauth accessibility Date: Tue, 19 Mar 2019 14:00:39 +0530 [thread overview] Message-ID: <1552984243-7689-7-git-send-email-amit.kachhap@arm.com> (raw) In-Reply-To: <1552984243-7689-1-git-send-email-amit.kachhap@arm.com> Since Pointer authentication will be enabled or disabled on a per-vcpu basis, vcpu feature flags are added in order to know which vcpus have it enabled from userspace. This features will allow the KVM guest to allow the handling of pointer authentication instructions or to treat them as undefined if not set. The helper macro added checks the feature flag along with other conditions such as VHE mode present and system supports pointer address/generic authentication. Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Christoffer Dall <christoffer.dall@arm.com> Cc: kvmarm@lists.cs.columbia.edu --- arch/arm64/include/asm/kvm_host.h | 8 +++++++- arch/arm64/include/uapi/asm/kvm.h | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index e3ccd7b..9dd2918 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -45,7 +45,7 @@ #define KVM_MAX_VCPUS VGIC_V3_MAX_CPUS -#define KVM_VCPU_MAX_FEATURES 4 +#define KVM_VCPU_MAX_FEATURES 6 #define KVM_REQ_SLEEP \ KVM_ARCH_REQ_FLAGS(0, KVM_REQUEST_WAIT | KVM_REQUEST_NO_WAKEUP) @@ -491,6 +491,12 @@ static inline bool kvm_arch_requires_vhe(void) return false; } +#define vcpu_has_ptrauth(vcpu) (has_vhe() && \ + system_supports_address_auth() && \ + system_supports_generic_auth() && \ + test_bit(KVM_ARM_VCPU_PTRAUTH_ADDRESS, vcpu->arch.features) && \ + test_bit(KVM_ARM_VCPU_PTRAUTH_GENERIC, vcpu->arch.features)) + static inline void kvm_arch_hardware_unsetup(void) {} static inline void kvm_arch_sync_events(struct kvm *kvm) {} static inline void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu) {} diff --git a/arch/arm64/include/uapi/asm/kvm.h b/arch/arm64/include/uapi/asm/kvm.h index 97c3478..8806f71 100644 --- a/arch/arm64/include/uapi/asm/kvm.h +++ b/arch/arm64/include/uapi/asm/kvm.h @@ -102,6 +102,8 @@ struct kvm_regs { #define KVM_ARM_VCPU_EL1_32BIT 1 /* CPU running a 32bit VM */ #define KVM_ARM_VCPU_PSCI_0_2 2 /* CPU uses PSCI v0.2 */ #define KVM_ARM_VCPU_PMU_V3 3 /* Support guest PMUv3 */ +#define KVM_ARM_VCPU_PTRAUTH_ADDRESS 4 /* VCPU uses address authentication */ +#define KVM_ARM_VCPU_PTRAUTH_GENERIC 5 /* VCPU uses generic authentication */ struct kvm_vcpu_init { __u32 target; -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-03-19 8:31 UTC|newest] Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-03-19 8:30 [PATCH v7 0/10] Add ARMv8.3 pointer authentication for kvm guest Amit Daniel Kachhap 2019-03-19 8:30 ` Amit Daniel Kachhap 2019-03-19 8:30 ` [PATCH v7 1/10] KVM: arm64: Propagate vcpu into read_id_reg() Amit Daniel Kachhap 2019-03-19 8:30 ` Amit Daniel Kachhap 2019-03-19 8:30 ` [PATCH v7 2/10] KVM: arm64: Support runtime sysreg visibility filtering Amit Daniel Kachhap 2019-03-19 8:30 ` Amit Daniel Kachhap 2019-03-19 8:30 ` [PATCH v7 3/10] KVM: arm64: Move hyp_symbol_addr to fix dependency Amit Daniel Kachhap 2019-03-19 8:30 ` Amit Daniel Kachhap 2019-03-20 8:49 ` Julien Thierry 2019-03-20 8:49 ` Julien Thierry 2019-03-21 5:29 ` Amit Daniel Kachhap 2019-03-21 5:29 ` Amit Daniel Kachhap 2019-03-21 5:29 ` Amit Daniel Kachhap 2019-03-19 8:30 ` [PATCH v7 4/10] KVM: arm/arm64: preserve host HCR_EL2 value Amit Daniel Kachhap 2019-03-19 8:30 ` Amit Daniel Kachhap 2019-03-19 8:30 ` [PATCH v7 5/10] KVM: arm/arm64: preserve host MDCR_EL2 value Amit Daniel Kachhap 2019-03-19 8:30 ` Amit Daniel Kachhap 2019-03-25 20:04 ` Kristina Martsenko 2019-03-25 20:04 ` Kristina Martsenko 2019-03-26 3:55 ` Amit Daniel Kachhap 2019-03-26 3:55 ` Amit Daniel Kachhap 2019-03-19 8:30 ` Amit Daniel Kachhap [this message] 2019-03-19 8:30 ` [PATCH v7 6/10] KVM: arm64: Add vcpu feature flags to control ptrauth accessibility Amit Daniel Kachhap 2019-03-19 8:30 ` [PATCH v7 7/10] KVM: arm/arm64: context-switch ptrauth registers Amit Daniel Kachhap 2019-03-19 8:30 ` Amit Daniel Kachhap 2019-03-20 12:13 ` Julien Thierry 2019-03-20 12:13 ` Julien Thierry 2019-03-21 6:08 ` Amit Daniel Kachhap 2019-03-21 6:08 ` Amit Daniel Kachhap 2019-03-21 8:29 ` Julien Thierry 2019-03-21 8:29 ` Julien Thierry 2019-03-25 20:04 ` Kristina Martsenko 2019-03-25 20:04 ` Kristina Martsenko 2019-03-26 4:03 ` Amit Daniel Kachhap 2019-03-26 4:03 ` Amit Daniel Kachhap 2019-03-26 18:01 ` Kristina Martsenko 2019-03-26 18:01 ` Kristina Martsenko 2019-03-27 3:21 ` Amit Daniel Kachhap 2019-03-27 3:21 ` Amit Daniel Kachhap 2019-03-27 3:21 ` Amit Daniel Kachhap 2019-03-27 18:16 ` James Morse 2019-03-27 18:16 ` James Morse 2019-03-27 18:16 ` James Morse 2019-03-28 11:29 ` Amit Daniel Kachhap 2019-03-28 11:29 ` Amit Daniel Kachhap 2019-03-28 18:51 ` James Morse 2019-03-28 18:51 ` James Morse 2019-03-29 5:54 ` Amit Daniel Kachhap 2019-03-29 5:54 ` Amit Daniel Kachhap 2019-03-29 5:54 ` Amit Daniel Kachhap 2019-03-19 8:30 ` [PATCH v7 8/10] KVM: arm64: Add capability to advertise ptrauth for guest Amit Daniel Kachhap 2019-03-19 8:30 ` Amit Daniel Kachhap 2019-03-19 8:30 ` Amit Daniel Kachhap 2019-03-25 20:05 ` Kristina Martsenko 2019-03-25 20:05 ` Kristina Martsenko 2019-03-26 4:12 ` Amit Daniel Kachhap 2019-03-26 4:12 ` Amit Daniel Kachhap 2019-03-26 4:12 ` Amit Daniel Kachhap 2019-03-19 8:30 ` [PATCH v7 9/10] KVM: arm64: docs: document KVM support of pointer authentication Amit Daniel Kachhap 2019-03-19 8:30 ` Amit Daniel Kachhap 2019-03-20 13:37 ` Julien Thierry 2019-03-20 13:37 ` Julien Thierry 2019-03-20 15:04 ` Kristina Martsenko 2019-03-20 15:04 ` Kristina Martsenko 2019-03-20 18:06 ` Julien Thierry 2019-03-20 18:06 ` Julien Thierry 2019-03-20 20:56 ` Kristina Martsenko 2019-03-20 20:56 ` Kristina Martsenko 2019-03-21 6:41 ` Amit Daniel Kachhap 2019-03-21 6:41 ` Amit Daniel Kachhap 2019-03-25 20:05 ` Kristina Martsenko 2019-03-25 20:05 ` Kristina Martsenko 2019-03-27 10:44 ` Dave Martin 2019-03-27 10:44 ` Dave Martin 2019-03-27 11:49 ` Amit Daniel Kachhap 2019-03-27 11:49 ` Amit Daniel Kachhap 2019-03-27 13:50 ` Dave Martin 2019-03-27 13:50 ` Dave Martin 2019-03-28 10:13 ` Amit Daniel Kachhap 2019-03-28 10:13 ` Amit Daniel Kachhap 2019-03-19 8:30 ` [kvmtool PATCH v7 10/10] KVM: arm/arm64: Add a vcpu feature for " Amit Daniel Kachhap 2019-03-19 8:30 ` Amit Daniel Kachhap
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1552984243-7689-7-git-send-email-amit.kachhap@arm.com \ --to=amit.kachhap@arm.com \ --cc=Dave.Martin@arm.com \ --cc=catalin.marinas@arm.com \ --cc=christoffer.dall@arm.com \ --cc=drjones@redhat.com \ --cc=james.morse@arm.com \ --cc=julien.thierry@arm.com \ --cc=kristina.martsenko@arm.com \ --cc=kvmarm@lists.cs.columbia.edu \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=marc.zyngier@arm.com \ --cc=mark.rutland@arm.com \ --cc=ramana.radhakrishnan@arm.com \ --cc=will.deacon@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.