From mboxrd@z Thu Jan 1 00:00:00 1970 From: Feng Wu Subject: [PATCH v2 0/5] x86: Use alternative mechanism to define CLAC/STAC Date: Thu, 29 May 2014 13:34:24 +0800 Message-ID: <1401341669-5237-1-git-send-email-feng.wu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Feng Wu , ian.campbell@citrix.com, andrew.cooper3@citrix.com, tim@xen.org, keir.xen@gmail.com, stefano.stabellini@citrix.com, JBeulich@suse.com List-Id: xen-devel@lists.xenproject.org This patch set ports the basic alternative mechanism from Linux to Xen and use it to define CLAC/STAC. Version 1: * Initial version Version 2: * Use STR() as the only method for performing preprocessor stringificaion. * Set ideal_nops to k8_nops by default * Make ideal_nops static and __initdata * Mask the lowest bit when handling relative jump in apply_alternatives() * Move .altinstr_replacemen and altinstructions to .init section * Include nops.h in alternative.h * Some code style changes There are some changes related to ARM code in the first patch of this series, but I don't have ARM environment to verify it. The changes in x86 side have the same logic, and I verify it in x86 side. Feng Wu (5): Use STR() as the only method for performing preprocessor stringificaion x86: Add definitions for NOP operation x86: Make set_nmi_callback return the old nmi callback x86: Port the basic alternative mechanism from Linux to Xen x86: Use alternative mechanism to define CLAC/STAC xen/arch/arm/domain_build.c | 2 +- xen/arch/x86/Makefile | 1 + xen/arch/x86/alternative.c | 213 ++++++++++++++++++++++++++++++++++ xen/arch/x86/efi/boot.c | 3 +- xen/arch/x86/setup.c | 3 + xen/arch/x86/traps.c | 4 +- xen/arch/x86/xen.lds.S | 15 +++ xen/include/asm-arm/arm32/processor.h | 10 +- xen/include/asm-arm/cpregs.h | 2 - xen/include/asm-arm/sysregs.h | 2 - xen/include/asm-x86/alternative.h | 78 +++++++++++++ xen/include/asm-x86/asm_defns.h | 25 ++-- xen/include/asm-x86/nmi.h | 4 +- xen/include/asm-x86/nops.h | 66 +++++++++++ xen/include/xen/stringify.h | 12 -- 15 files changed, 401 insertions(+), 39 deletions(-) create mode 100644 xen/arch/x86/alternative.c create mode 100644 xen/include/asm-x86/alternative.h create mode 100644 xen/include/asm-x86/nops.h delete mode 100644 xen/include/xen/stringify.h -- 1.8.3.1