From patchwork Mon Jul 18 09:51:38 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 9234321 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 18A4A607FF for ; Mon, 18 Jul 2016 09:55:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0860F228C8 for ; Mon, 18 Jul 2016 09:55:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F104426C2F; Mon, 18 Jul 2016 09:55:15 +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 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 6CCCD228C8 for ; Mon, 18 Jul 2016 09:55:15 +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 1bP5Dt-00075O-0y; Mon, 18 Jul 2016 09:52:25 +0000 Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bP5Dr-00073y-CZ for xen-devel@lists.xen.org; Mon, 18 Jul 2016 09:52:23 +0000 Received: from [193.109.254.147] by server-7.bemta-14.messagelabs.com id 85/36-09881-6D6AC875; Mon, 18 Jul 2016 09:52:22 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeJIrShJLcpLzFFi42JxWrrBXvfasp5 wg19fRC2WfFzM4sDocXT3b6YAxijWzLyk/IoE1ozze9oZC87wVMw9FNnA2M/VxcjJISHgL9Fx cxcbiM0moC+x+8UnJhBbREBd4nTHRdYuRg4OZgE/iUMPfEHCwgI+Elu33mEFsVkEVCXWnb/HD mLzCnhIrL57iAlipJzE+eM/mUFaOQU8JWb3i4OYQkAlH98rglQICahJXOu/BNUpKHFy5hMWEJ tZQELi4IsXzBBTuCVun57KPIGRbxaSsllIyhYwMq1iVC9OLSpLLdK10EsqykzPKMlNzMzRNTQ 00ctNLS5OTE/NSUwq1kvOz93ECAwlBiDYwbhxkvMhRkkOJiVRXqsFPeFCfEn5KZUZicUZ8UWl OanFhxhlODiUJHgnLwXKCRalpqdWpGXmAIMaJi3BwaMkwmsDkuYtLkjMLc5Mh0idYlSUEudtB 0kIgCQySvPg2mCRdIlRVkqYlxHoECGegtSi3MwSVPlXjOIcjErCvK0gU3gy80rgpr8CWswEtN hAtRtkcUkiQkqqgXFnNPcNFoe3rWwTVm9g1uvZ593r7it06qaLu1V30j2ev/kFbT9LLnf+vi6 0dG7ARK97H/6XMv7sfSgwNyc/gV9O+2fj5lrft6xnYm49l9irphzg9bPfdmWKb253g8Xi+56l b3NWeBbavZJY+KhMLE9ltcsHu0LphQUPloXeYZdhl6ledLf8hBJLcUaioRZzUXEiAEi4IFCfA gAA X-Env-Sender: prvs=0008e1294=Andrew.Cooper3@citrix.com X-Msg-Ref: server-13.tower-27.messagelabs.com!1468835539!54516342!3 X-Originating-IP: [66.165.176.63] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n, received_headers: No Received headers X-StarScan-Received: X-StarScan-Version: 8.77; banners=-,-,- X-VirusChecked: Checked Received: (qmail 55082 invoked from network); 18 Jul 2016 09:52:22 -0000 Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63) by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP; 18 Jul 2016 09:52:22 -0000 X-IronPort-AV: E=Sophos;i="5.28,383,1464652800"; d="scan'208";a="373756592" From: Andrew Cooper To: Xen-devel Date: Mon, 18 Jul 2016 10:51:38 +0100 Message-ID: <1468835505-7278-3-git-send-email-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1468835505-7278-1-git-send-email-andrew.cooper3@citrix.com> References: <1468835505-7278-1-git-send-email-andrew.cooper3@citrix.com> MIME-Version: 1.0 X-DLP: MIA2 Cc: Andrew Cooper , Jan Beulich Subject: [Xen-devel] [PATCH 2/9] x86/pv: Support do_set_segment_base() for compat guests 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: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP set_segment_base is the only hypercall exists in only one of the two modes guests might run in; all other hypercalls are either implemented, or unimplemented in both modes. Remove this split, by allowing do_set_segment_base() to be called in the compat hypercall path. This change will simplify the verification logic in a later change. No behavioural change from a guests point of view. Signed-off-by: Andrew Cooper --- CC: Jan Beulich --- xen/arch/x86/x86_64/compat/entry.S | 2 +- xen/arch/x86/x86_64/mm.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/x86_64/compat/entry.S b/xen/arch/x86/x86_64/compat/entry.S index 7f02afd..89673c4 100644 --- a/xen/arch/x86/x86_64/compat/entry.S +++ b/xen/arch/x86/x86_64/compat/entry.S @@ -453,7 +453,7 @@ ENTRY(compat_hypercall_table) .quad compat_update_va_mapping_otherdomain .quad compat_iret .quad compat_vcpu_op - .quad compat_ni_hypercall /* 25 */ + .quad do_set_segment_base /* 25 */ .quad compat_mmuext_op .quad compat_xsm_op .quad compat_nmi_op diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c index ff9fc43..512d855 100644 --- a/xen/arch/x86/x86_64/mm.c +++ b/xen/arch/x86/x86_64/mm.c @@ -1031,6 +1031,9 @@ long do_set_segment_base(unsigned int which, unsigned long base) struct vcpu *v = current; long ret = 0; + if ( is_pv_32bit_vcpu(v) ) + return -ENOSYS; /* x86/64 only. */ + switch ( which ) { case SEGBASE_FS: