From: Konrad Rzeszutek Wilk Date: Mon, 19 Sep 2016 15:12:51 +0000 (-0400) Subject: arm/x86/common: Add HAS_[ALTERNATIVE|EX_TABLE] X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~358 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=44db782fd20edae12d9292e0e72450ae46f6a739;p=xen.git arm/x86/common: Add HAS_[ALTERNATIVE|EX_TABLE] x86 implements all of them by default - and we just add two extra HAS_ variables to be declared in autoconf.h. ARM 64 only has alternative while ARM 32 has none of them. And while at it change the livepatch common code that would benefit from this. Reviewed-by: Julien Grall Reviewed-by: Ross Lagerwall Acked-by: Jan Beulich [relevant parts] Suggested-by: Julien Grall Signed-off-by: Konrad Rzeszutek Wilk --- diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index 558d013230..2e023d11f4 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -45,9 +45,6 @@ config ACPI config HAS_GICV3 bool -config HAS_ALTERNATIVE - bool - endmenu menu "ARM errata workaround via the alternative framework" diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index 265fd7907e..96ca2bf1ab 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -7,8 +7,10 @@ config X86 select ACPI_LEGACY_TABLES_LOOKUP select COMPAT select CORE_PARKING + select HAS_ALTERNATIVE select HAS_CPUFREQ select HAS_EHCI + select HAS_EX_TABLE select HAS_GDBSX select HAS_IOPORTS select HAS_KEXEC diff --git a/xen/common/Kconfig b/xen/common/Kconfig index 43318749a9..81e0017bf7 100644 --- a/xen/common/Kconfig +++ b/xen/common/Kconfig @@ -11,9 +11,15 @@ config COMPAT config CORE_PARKING bool +config HAS_ALTERNATIVE + bool + config HAS_DEVICE_TREE bool +config HAS_EX_TABLE + bool + config HAS_MEM_ACCESS bool diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c index 0ca4804cbd..e14ded6d73 100644 --- a/xen/common/livepatch.c +++ b/xen/common/livepatch.c @@ -641,7 +641,7 @@ static int prepare_payload(struct payload *payload, sizeof(*region->frame[i].bugs); } -#ifndef CONFIG_ARM +#ifdef CONFIG_HAS_ALTERNATIVE sec = livepatch_elf_sec_by_name(elf, ".altinstructions"); if ( sec ) { @@ -672,7 +672,9 @@ static int prepare_payload(struct payload *payload, } apply_alternatives(start, end); } +#endif +#ifdef CONFIG_HAS_EX_TABLE sec = livepatch_elf_sec_by_name(elf, ".ex_table"); if ( sec ) {