Message ID | 1552984243-7689-9-git-send-email-amit.kachhap@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add ARMv8.3 pointer authentication for kvm guest | expand |
On 19/03/2019 08:30, Amit Daniel Kachhap wrote: > This patch advertises the capability of pointer authentication > when system supports pointer authentication and VHE mode present. > > 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/kvm/reset.c | 4 ++++ > include/uapi/linux/kvm.h | 1 + > 2 files changed, 5 insertions(+) > > diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c > index 00f0639..a3b269e 100644 > --- a/arch/arm64/kvm/reset.c > +++ b/arch/arm64/kvm/reset.c > @@ -92,6 +92,10 @@ int kvm_arch_vm_ioctl_check_extension(struct kvm *kvm, long ext) > case KVM_CAP_ARM_VM_IPA_SIZE: > r = kvm_ipa_limit; > break; > + case KVM_CAP_ARM_PTRAUTH: > + r = has_vhe() && system_supports_address_auth() && > + system_supports_generic_auth(); > + break; > default: > r = 0; > } > diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h > index 6d4ea4b..a553477 100644 > --- a/include/uapi/linux/kvm.h > +++ b/include/uapi/linux/kvm.h > @@ -988,6 +988,7 @@ struct kvm_ppc_resize_hpt { > #define KVM_CAP_ARM_VM_IPA_SIZE 165 > #define KVM_CAP_MANUAL_DIRTY_LOG_PROTECT 166 > #define KVM_CAP_HYPERV_CPUID 167 > +#define KVM_CAP_ARM_PTRAUTH 168 Since we now have two separate vcpu flags, then I think we also need two capabilities here (one for address auth and one for generic auth). This will allow us to support the features separately in the future if we need to. Thanks, Kristina
Hi, On 3/26/19 1:35 AM, Kristina Martsenko wrote: > On 19/03/2019 08:30, Amit Daniel Kachhap wrote: >> This patch advertises the capability of pointer authentication >> when system supports pointer authentication and VHE mode present. >> >> 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/kvm/reset.c | 4 ++++ >> include/uapi/linux/kvm.h | 1 + >> 2 files changed, 5 insertions(+) >> >> diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c >> index 00f0639..a3b269e 100644 >> --- a/arch/arm64/kvm/reset.c >> +++ b/arch/arm64/kvm/reset.c >> @@ -92,6 +92,10 @@ int kvm_arch_vm_ioctl_check_extension(struct kvm *kvm, long ext) >> case KVM_CAP_ARM_VM_IPA_SIZE: >> r = kvm_ipa_limit; >> break; >> + case KVM_CAP_ARM_PTRAUTH: >> + r = has_vhe() && system_supports_address_auth() && >> + system_supports_generic_auth(); >> + break; >> default: >> r = 0; >> } >> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h >> index 6d4ea4b..a553477 100644 >> --- a/include/uapi/linux/kvm.h >> +++ b/include/uapi/linux/kvm.h >> @@ -988,6 +988,7 @@ struct kvm_ppc_resize_hpt { >> #define KVM_CAP_ARM_VM_IPA_SIZE 165 >> #define KVM_CAP_MANUAL_DIRTY_LOG_PROTECT 166 >> #define KVM_CAP_HYPERV_CPUID 167 >> +#define KVM_CAP_ARM_PTRAUTH 168 > > Since we now have two separate vcpu flags, then I think we also need two > capabilities here (one for address auth and one for generic auth). This > will allow us to support the features separately in the future if we > need to. I have no objection to your suggestion. Infact all other KVM_ARM_VCPU_* features have there own capability defined. I will check other architectures if they define separate capability for major/minor features. Thanks, Amit D > > Thanks, > Kristina >
diff --git a/arch/arm64/kvm/reset.c b/arch/arm64/kvm/reset.c index 00f0639..a3b269e 100644 --- a/arch/arm64/kvm/reset.c +++ b/arch/arm64/kvm/reset.c @@ -92,6 +92,10 @@ int kvm_arch_vm_ioctl_check_extension(struct kvm *kvm, long ext) case KVM_CAP_ARM_VM_IPA_SIZE: r = kvm_ipa_limit; break; + case KVM_CAP_ARM_PTRAUTH: + r = has_vhe() && system_supports_address_auth() && + system_supports_generic_auth(); + break; default: r = 0; } diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 6d4ea4b..a553477 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h @@ -988,6 +988,7 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_ARM_VM_IPA_SIZE 165 #define KVM_CAP_MANUAL_DIRTY_LOG_PROTECT 166 #define KVM_CAP_HYPERV_CPUID 167 +#define KVM_CAP_ARM_PTRAUTH 168 #ifdef KVM_CAP_IRQ_ROUTING
This patch advertises the capability of pointer authentication when system supports pointer authentication and VHE mode present. 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/kvm/reset.c | 4 ++++ include/uapi/linux/kvm.h | 1 + 2 files changed, 5 insertions(+)