From patchwork Mon Dec 27 14:56:44 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 434221 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id oBRKCV8r025997 for ; Mon, 27 Dec 2010 20:16:40 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753981Ab0L0O4r (ORCPT ); Mon, 27 Dec 2010 09:56:47 -0500 Received: from fmmailgate03.web.de ([217.72.192.234]:37719 "EHLO fmmailgate03.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753961Ab0L0O4r (ORCPT ); Mon, 27 Dec 2010 09:56:47 -0500 Received: from smtp01.web.de ( [172.20.0.243]) by fmmailgate03.web.de (Postfix) with ESMTP id 4F175182F9715; Mon, 27 Dec 2010 15:56:45 +0100 (CET) Received: from [178.3.214.57] (helo=mchn199C.mchp.siemens.de) by smtp01.web.de with asmtp (TLSv1:AES256-SHA:256) (WEB.DE 4.110 #2) id 1PXEVB-00005U-00; Mon, 27 Dec 2010 15:56:45 +0100 Message-ID: <4D18A92C.5000303@web.de> Date: Mon, 27 Dec 2010 15:56:44 +0100 From: Jan Kiszka User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 MIME-Version: 1.0 To: Avi Kivity , Marcelo Tosatti CC: kvm , qemu-devel Subject: [PATCH] kvm: x86: Fix DPL write back of segment registers X-Enigmail-Version: 1.1.2 X-Sender: jan.kiszka@web.de X-Provags-ID: V01U2FsdGVkX19v7bhnZN2tOofrQf8Ris3aTq/j5dk8B4Csh+rh rA6wlDwetV7AtMmXc09g+vVcKmqZi9WarOar/iBKoUgQMNOj0f 0O0Ea7BpU= Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Mon, 27 Dec 2010 20:16:41 +0000 (UTC) diff --git a/target-i386/kvm.c b/target-i386/kvm.c index 218812a..b3d7c54 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -602,7 +602,7 @@ static void set_seg(struct kvm_segment *lhs, const SegmentCache *rhs) lhs->limit = rhs->limit; lhs->type = (flags >> DESC_TYPE_SHIFT) & 15; lhs->present = (flags & DESC_P_MASK) != 0; - lhs->dpl = rhs->selector & 3; + lhs->dpl = (flags >> DESC_DPL_SHIFT) & 3; lhs->db = (flags >> DESC_B_SHIFT) & 1; lhs->s = (flags & DESC_S_MASK) != 0; lhs->l = (flags >> DESC_L_SHIFT) & 1;