Message ID | 1559906789-20936-7-git-send-email-Dave.Martin@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: Pointer Authentication and SVE support | expand |
On Fri, 7 Jun 2019 12:26:27 +0100 Dave Martin <Dave.Martin@arm.com> wrote: > Will says that the command-line arguments for controlling optional > vcpu features are superfluous: we don't attempt to support > migration, and this isn't QEMU. > > So, remove the command-line arguments and just default pointer auth > to on if supported. > > Signed-off-by: Dave Martin <Dave.Martin@arm.com> > > --- > > Changes since v3: > > * New patch. This should probably be folded into the previous one. Yes, absolutely! Those two merged become a so much simpler patch. For the stashed version: Reviewed-by: Andre Przywara <andre.przywara@arm.com> Cheers, Andre. > --- > arm/aarch64/include/kvm/kvm-config-arch.h | 6 +----- > arm/include/arm-common/kvm-config-arch.h | 2 -- > arm/kvm-cpu.c | 19 ++++--------------- > 3 files changed, 5 insertions(+), 22 deletions(-) > > diff --git a/arm/aarch64/include/kvm/kvm-config-arch.h b/arm/aarch64/include/kvm/kvm-config-arch.h > index 0279b13..04be43d 100644 > --- a/arm/aarch64/include/kvm/kvm-config-arch.h > +++ b/arm/aarch64/include/kvm/kvm-config-arch.h > @@ -8,11 +8,7 @@ > "Create PMUv3 device"), \ > OPT_U64('\0', "kaslr-seed", &(cfg)->kaslr_seed, \ > "Specify random seed for Kernel Address Space " \ > - "Layout Randomization (KASLR)"), \ > - OPT_BOOLEAN('\0', "enable-ptrauth", &(cfg)->enable_ptrauth, \ > - "Enables pointer authentication"), \ > - OPT_BOOLEAN('\0', "disable-ptrauth", &(cfg)->disable_ptrauth, \ > - "Disables pointer authentication"), > + "Layout Randomization (KASLR)"), > > #include "arm-common/kvm-config-arch.h" > > diff --git a/arm/include/arm-common/kvm-config-arch.h b/arm/include/arm-common/kvm-config-arch.h > index 1b4287d..5734c46 100644 > --- a/arm/include/arm-common/kvm-config-arch.h > +++ b/arm/include/arm-common/kvm-config-arch.h > @@ -10,8 +10,6 @@ struct kvm_config_arch { > bool aarch32_guest; > bool has_pmuv3; > u64 kaslr_seed; > - bool enable_ptrauth; > - bool disable_ptrauth; > enum irqchip_type irqchip; > u64 fw_addr; > }; > diff --git a/arm/kvm-cpu.c b/arm/kvm-cpu.c > index acd1d5f..fff8494 100644 > --- a/arm/kvm-cpu.c > +++ b/arm/kvm-cpu.c > @@ -68,16 +68,9 @@ struct kvm_cpu *kvm_cpu__arch_init(struct kvm *kvm, unsigned long cpu_id) > vcpu_init.features[0] |= (1UL << KVM_ARM_VCPU_PSCI_0_2); > } > > - /* Check Pointer Authentication command line arguments. */ > - if (kvm->cfg.arch.enable_ptrauth && kvm->cfg.arch.disable_ptrauth) > - die("Both enable-ptrauth and disable-ptrauth option cannot be present"); > - /* > - * Always enable Pointer Authentication if system supports > - * this extension unless disable-ptrauth option is present. > - */ > + /* Enable pointer authentication if available */ > if (kvm__supports_extension(kvm, KVM_CAP_ARM_PTRAUTH_ADDRESS) && > - kvm__supports_extension(kvm, KVM_CAP_ARM_PTRAUTH_GENERIC) && > - !kvm->cfg.arch.disable_ptrauth) > + kvm__supports_extension(kvm, KVM_CAP_ARM_PTRAUTH_GENERIC)) > vcpu_init.features[0] |= ARM_VCPU_PTRAUTH_FEATURE; > > /* > @@ -118,12 +111,8 @@ struct kvm_cpu *kvm_cpu__arch_init(struct kvm *kvm, unsigned long cpu_id) > die("Unable to find matching target"); > } > > - if (err || target->init(vcpu)) { > - if (kvm->cfg.arch.enable_ptrauth) > - die("Unable to initialise vcpu with pointer authentication feature"); > - else > - die("Unable to initialise vcpu"); > - } > + if (err || target->init(vcpu)) > + die("Unable to initialise vcpu"); > > coalesced_offset = ioctl(kvm->sys_fd, KVM_CHECK_EXTENSION, > KVM_CAP_COALESCED_MMIO);
diff --git a/arm/aarch64/include/kvm/kvm-config-arch.h b/arm/aarch64/include/kvm/kvm-config-arch.h index 0279b13..04be43d 100644 --- a/arm/aarch64/include/kvm/kvm-config-arch.h +++ b/arm/aarch64/include/kvm/kvm-config-arch.h @@ -8,11 +8,7 @@ "Create PMUv3 device"), \ OPT_U64('\0', "kaslr-seed", &(cfg)->kaslr_seed, \ "Specify random seed for Kernel Address Space " \ - "Layout Randomization (KASLR)"), \ - OPT_BOOLEAN('\0', "enable-ptrauth", &(cfg)->enable_ptrauth, \ - "Enables pointer authentication"), \ - OPT_BOOLEAN('\0', "disable-ptrauth", &(cfg)->disable_ptrauth, \ - "Disables pointer authentication"), + "Layout Randomization (KASLR)"), #include "arm-common/kvm-config-arch.h" diff --git a/arm/include/arm-common/kvm-config-arch.h b/arm/include/arm-common/kvm-config-arch.h index 1b4287d..5734c46 100644 --- a/arm/include/arm-common/kvm-config-arch.h +++ b/arm/include/arm-common/kvm-config-arch.h @@ -10,8 +10,6 @@ struct kvm_config_arch { bool aarch32_guest; bool has_pmuv3; u64 kaslr_seed; - bool enable_ptrauth; - bool disable_ptrauth; enum irqchip_type irqchip; u64 fw_addr; }; diff --git a/arm/kvm-cpu.c b/arm/kvm-cpu.c index acd1d5f..fff8494 100644 --- a/arm/kvm-cpu.c +++ b/arm/kvm-cpu.c @@ -68,16 +68,9 @@ struct kvm_cpu *kvm_cpu__arch_init(struct kvm *kvm, unsigned long cpu_id) vcpu_init.features[0] |= (1UL << KVM_ARM_VCPU_PSCI_0_2); } - /* Check Pointer Authentication command line arguments. */ - if (kvm->cfg.arch.enable_ptrauth && kvm->cfg.arch.disable_ptrauth) - die("Both enable-ptrauth and disable-ptrauth option cannot be present"); - /* - * Always enable Pointer Authentication if system supports - * this extension unless disable-ptrauth option is present. - */ + /* Enable pointer authentication if available */ if (kvm__supports_extension(kvm, KVM_CAP_ARM_PTRAUTH_ADDRESS) && - kvm__supports_extension(kvm, KVM_CAP_ARM_PTRAUTH_GENERIC) && - !kvm->cfg.arch.disable_ptrauth) + kvm__supports_extension(kvm, KVM_CAP_ARM_PTRAUTH_GENERIC)) vcpu_init.features[0] |= ARM_VCPU_PTRAUTH_FEATURE; /* @@ -118,12 +111,8 @@ struct kvm_cpu *kvm_cpu__arch_init(struct kvm *kvm, unsigned long cpu_id) die("Unable to find matching target"); } - if (err || target->init(vcpu)) { - if (kvm->cfg.arch.enable_ptrauth) - die("Unable to initialise vcpu with pointer authentication feature"); - else - die("Unable to initialise vcpu"); - } + if (err || target->init(vcpu)) + die("Unable to initialise vcpu"); coalesced_offset = ioctl(kvm->sys_fd, KVM_CHECK_EXTENSION, KVM_CAP_COALESCED_MMIO);
Will says that the command-line arguments for controlling optional vcpu features are superfluous: we don't attempt to support migration, and this isn't QEMU. So, remove the command-line arguments and just default pointer auth to on if supported. Signed-off-by: Dave Martin <Dave.Martin@arm.com> --- Changes since v3: * New patch. This should probably be folded into the previous one. --- arm/aarch64/include/kvm/kvm-config-arch.h | 6 +----- arm/include/arm-common/kvm-config-arch.h | 2 -- arm/kvm-cpu.c | 19 ++++--------------- 3 files changed, 5 insertions(+), 22 deletions(-)