]> xenbits.xensource.com Git - xen.git/commitdiff
arm/x86/common: Add HAS_[ALTERNATIVE|EX_TABLE]
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Mon, 19 Sep 2016 15:12:51 +0000 (11:12 -0400)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 23 Sep 2016 16:39:44 +0000 (12:39 -0400)
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 <julien.grall@arm.com>
Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com> [relevant parts]
Suggested-by: Julien Grall <julien.grall@arm.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
xen/arch/arm/Kconfig
xen/arch/x86/Kconfig
xen/common/Kconfig
xen/common/livepatch.c

index 558d013230df293f54d8cae3521062125eee3f05..2e023d11f45c84f0702d12abfdb60094250a0078 100644 (file)
@@ -45,9 +45,6 @@ config ACPI
 config HAS_GICV3
        bool
 
-config HAS_ALTERNATIVE
-       bool
-
 endmenu
 
 menu "ARM errata workaround via the alternative framework"
index 265fd7907e9edceeb87e3a9960b2e1cd9847e856..96ca2bf1abb84d79f6a175728fd9252ceb96b027 100644 (file)
@@ -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
index 43318749a97bd9946dd1f4702d20c02a9eb325e3..81e0017bf7ab90aefdaa6411af69c4f43ade9f84 100644 (file)
@@ -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
 
index 0ca4804cbdf3d2b4bc77255ba7a31157a42de654..e14ded6d73fa4b20e398477374f2d16499a5da5c 100644 (file)
@@ -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 )
     {