diff options
author | Will Deacon <will.deacon@arm.com> | 2017-10-09 12:14:13 +0100 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2017-10-09 17:20:45 +0100 |
commit | 84d77496a279c6e7ae5678737cb396a7a08d6721 (patch) | |
tree | d1e56aef7123051d871b871614930c81d732922a | |
parent | 93dd1288081497146b3a7ad98e40c5b2635c3148 (diff) | |
download | kvmtool-84d77496a279c6e7ae5678737cb396a7a08d6721.tar.gz |
arm64: Allow random seed to be specified for KASLR
Fully fledged bootloaders should really be populating this from within
the guest using virtio-rng, but having a way to specify it on the cmdline
is useful for developers or users without a bootloader.
Signed-off-by: Will Deacon <will.deacon@arm.com>
-rw-r--r-- | arm/aarch64/include/kvm/kvm-config-arch.h | 5 | ||||
-rw-r--r-- | arm/fdt.c | 1 | ||||
-rw-r--r-- | arm/include/arm-common/kvm-config-arch.h | 1 |
3 files changed, 6 insertions, 1 deletions
diff --git a/arm/aarch64/include/kvm/kvm-config-arch.h b/arm/aarch64/include/kvm/kvm-config-arch.h index 5ef1f17b..04be43df 100644 --- a/arm/aarch64/include/kvm/kvm-config-arch.h +++ b/arm/aarch64/include/kvm/kvm-config-arch.h @@ -5,7 +5,10 @@ OPT_BOOLEAN('\0', "aarch32", &(cfg)->aarch32_guest, \ "Run AArch32 guest"), \ OPT_BOOLEAN('\0', "pmu", &(cfg)->has_pmuv3, \ - "Create PMUv3 device"), + "Create PMUv3 device"), \ + OPT_U64('\0', "kaslr-seed", &(cfg)->kaslr_seed, \ + "Specify random seed for Kernel Address Space " \ + "Layout Randomization (KASLR)"), #include "arm-common/kvm-config-arch.h" @@ -142,6 +142,7 @@ static int setup_fdt(struct kvm *kvm) _FDT(fdt_begin_node(fdt, "chosen")); _FDT(fdt_property_cell(fdt, "linux,pci-probe-only", 1)); _FDT(fdt_property_string(fdt, "bootargs", kvm->cfg.real_cmdline)); + _FDT(fdt_property_u64(fdt, "kaslr-seed", kvm->cfg.arch.kaslr_seed)); /* Initrd */ if (kvm->arch.initrd_size != 0) { diff --git a/arm/include/arm-common/kvm-config-arch.h b/arm/include/arm-common/kvm-config-arch.h index b48e7201..f18b2c88 100644 --- a/arm/include/arm-common/kvm-config-arch.h +++ b/arm/include/arm-common/kvm-config-arch.h @@ -9,6 +9,7 @@ struct kvm_config_arch { bool virtio_trans_pci; bool aarch32_guest; bool has_pmuv3; + u64 kaslr_seed; enum irqchip_type irqchip; }; |