From patchwork Thu Aug 25 13:37:22 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Konrad Rzeszutek Wilk X-Patchwork-Id: 9299363 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id C914260459 for ; Thu, 25 Aug 2016 13:40:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BAB0429336 for ; Thu, 25 Aug 2016 13:40:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AF2D129338; Thu, 25 Aug 2016 13:40:19 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 2987329336 for ; Thu, 25 Aug 2016 13:40:19 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bcur7-0000us-7E; Thu, 25 Aug 2016 13:38:05 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bcur5-0000u6-Mi for xen-devel@lists.xenproject.org; Thu, 25 Aug 2016 13:38:03 +0000 Received: from [193.109.254.147] by server-5.bemta-6.messagelabs.com id F5/8F-29563-AB4FEB75; Thu, 25 Aug 2016 13:38:02 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrNLMWRWlGSWpSXmKPExsUyZ7p8oO6uL/v CDfa1Cll83zKZyYHR4/CHKywBjFGsmXlJ+RUJrBkLHtxlLnggUHGx8zRjA+Mt3i5GLg4hgQ4m iZNb+pggnG+MEitnnWbvYuQEcjYySjRtSoVITGOUeNDcCZTg4GATMJF4s8oRJC4i0McocfjoJ maQBmaBXYwSTxqjQGxhAWeJB639TCA2i4CqxJutO8FqeAXcJO4/vMsIMkdCQF7i2e16kDCngL vE74bNbBB73SS+X+pgAbElBIwl+mb1sUxg5FvAyLCKUaM4tagstUjXyFQvqSgzPaMkNzEzR9f QwEwvN7W4ODE9NScxqVgvOT93EyMwUBiAYAfjqgWBhxglOZiURHm1V+wLF+JLyk+pzEgszogv Ks1JLT7EKMPBoSTBywYMPCHBotT01Iq0zBxgyMKkJTh4lER4X30GSvMWFyTmFmemQ6ROMSpKi fM+BEkIgCQySvPg2mBxcolRVkqYlxHoECGegtSi3MwSVPlXjOIcjErCvB9BpvBk5pXATX8FtJ gJaHHL/d0gi0sSEVJSDYzu2fd3X+d1rPe6I1Q7XXaaA9c0l9DQ6iA/h4WbTzxV2vz9HuP0Hbw fpYXnBFmHLr3Xzbt5le2J1uNPDA1Sdsk8MN7uNkmSU7Kd4+oSxn/Hp3ydeVOmV/GxR0Of5Pxb ArfN9+rxP3776cTGyRdXWpi+bu+c0rF0annpERmvc8vUGB2CFvKsYt2jxFKckWioxVxUnAgAI Fq58o4CAAA= X-Env-Sender: konrad.wilk@oracle.com X-Msg-Ref: server-4.tower-27.messagelabs.com!1472132280!54978283!1 X-Originating-IP: [156.151.31.81] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogMTU2LjE1MS4zMS44MSA9PiAyODgzMzk=\n X-StarScan-Received: X-StarScan-Version: 8.84; banners=-,-,- X-VirusChecked: Checked Received: (qmail 45700 invoked from network); 25 Aug 2016 13:38:02 -0000 Received: from userp1040.oracle.com (HELO userp1040.oracle.com) (156.151.31.81) by server-4.tower-27.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 25 Aug 2016 13:38:02 -0000 Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u7PDbqgs030564 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 25 Aug 2016 13:37:53 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserv0021.oracle.com (8.13.8/8.13.8) with ESMTP id u7PDbq42021924 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 25 Aug 2016 13:37:52 GMT Received: from abhmp0017.oracle.com (abhmp0017.oracle.com [141.146.116.23]) by aserv0121.oracle.com (8.13.8/8.13.8) with ESMTP id u7PDbo6Q025878; Thu, 25 Aug 2016 13:37:52 GMT Received: from localhost.event.rightround.com (/75.98.193.200) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 25 Aug 2016 06:37:50 -0700 From: Konrad Rzeszutek Wilk To: xen-devel@lists.xenproject.org, konrad@kernel.org, ross.lagerwall@citrix.com, sstabellini@kernel.org, julien.grall@arm.com Date: Thu, 25 Aug 2016 09:37:22 -0400 Message-Id: <1472132255-23470-8-git-send-email-konrad.wilk@oracle.com> X-Mailer: git-send-email 2.4.11 In-Reply-To: <1472132255-23470-1-git-send-email-konrad.wilk@oracle.com> References: <1472132255-23470-1-git-send-email-konrad.wilk@oracle.com> X-Source-IP: aserv0021.oracle.com [141.146.126.233] Cc: Andrew Cooper , Doug Goldstein , Jan Beulich , Konrad Rzeszutek Wilk Subject: [Xen-devel] [PATCH v2 07/20] arm/x86: Add ALTERNATIVE and HAS_EX_TABLE X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP x86 implements all of them by default - and we just add two extra CONFIG_ 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. Suggested-by: Julien Grall Signed-off-by: Konrad Rzeszutek Wilk --- Cc: Stefano Stabellini Cc: Julien Grall Cc: Jan Beulich Cc: Andrew Cooper Cc: Doug Goldstein v2: First submission --- xen/arch/x86/Kconfig | 8 ++++++++ xen/common/livepatch.c | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index 265fd79..daef864 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -5,10 +5,12 @@ config X86 def_bool y select ACPI select ACPI_LEGACY_TABLES_LOOKUP + select ALTERNATIVE select COMPAT select CORE_PARKING select HAS_CPUFREQ select HAS_EHCI + select HAS_EX_TABLE select HAS_GDBSX select HAS_IOPORTS select HAS_KEXEC @@ -22,6 +24,12 @@ config X86 select NUMA select VGA +config ALTERNATIVE + bool + +config HAS_EX_TABLE + bool + config ARCH_DEFCONFIG string default "arch/x86/configs/x86_64_defconfig" diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c index b771c7d..7e36d97 100644 --- a/xen/common/livepatch.c +++ b/xen/common/livepatch.c @@ -3,6 +3,7 @@ * */ +#include #include #include #include @@ -684,7 +685,7 @@ static int prepare_payload(struct payload *payload, sizeof(*region->frame[i].bugs); } -#ifndef CONFIG_ARM +#ifdef CONFIG_ALTERNATIVE sec = livepatch_elf_sec_by_name(elf, ".altinstructions"); if ( sec ) { @@ -715,7 +716,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 ) {