From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH 1/2] VMX: also use proper instruction mnemonic for VMREAD Date: Mon, 16 Sep 2013 12:53:20 +0100 Message-ID: <5236F130.8050701@citrix.com> References: <523701D802000078000F394E@nat28.tlf.novell.com> <5237024902000078000F3962@nat28.tlf.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1VLXNE-0006uG-3P for xen-devel@lists.xenproject.org; Mon, 16 Sep 2013 11:53:48 +0000 In-Reply-To: <5237024902000078000F3962@nat28.tlf.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: xen-devel , Eddie Dong , Jun Nakajima List-Id: xen-devel@lists.xenproject.org On 16/09/2013 12:06, Jan Beulich wrote: > vmx_vmcs_enter(v); > > switch ( seg ) > { > case x86_seg_cs: > - reg->sel = __vmread(GUEST_CS_SELECTOR); > - reg->limit = __vmread(GUEST_CS_LIMIT); > - reg->base = __vmread(GUEST_CS_BASE); > - attr = __vmread(GUEST_CS_AR_BYTES); > + __vmread(GUEST_CS_SELECTOR, &sel); > + __vmread(GUEST_CS_LIMIT, &limit); > + __vmread(GUEST_CS_BASE, ®->base); > + __vmread(GUEST_CS_AR_BYTES, &attr); > break; > case x86_seg_ds: > - reg->sel = __vmread(GUEST_DS_SELECTOR); > - reg->limit = __vmread(GUEST_DS_LIMIT); > - reg->base = __vmread(GUEST_DS_BASE); > - attr = __vmread(GUEST_DS_AR_BYTES); > + __vmread(GUEST_DS_SELECTOR, &sel); > + __vmread(GUEST_DS_LIMIT, &limit); > + __vmread(GUEST_DS_BASE, ®->base); > + __vmread(GUEST_DS_AR_BYTES, &attr); > break; > case x86_seg_es: > - reg->sel = __vmread(GUEST_ES_SELECTOR); > - reg->limit = __vmread(GUEST_ES_LIMIT); > - reg->base = __vmread(GUEST_ES_BASE); > - attr = __vmread(GUEST_ES_AR_BYTES); > + __vmread(GUEST_ES_SELECTOR, &sel); > + __vmread(GUEST_ES_LIMIT, &limit); > + __vmread(GUEST_ES_BASE, ®->base); > + __vmread(GUEST_ES_AR_BYTES, &attr); > break; > case x86_seg_fs: > - reg->sel = __vmread(GUEST_FS_SELECTOR); > - reg->limit = __vmread(GUEST_FS_LIMIT); > - reg->base = __vmread(GUEST_FS_BASE); > - attr = __vmread(GUEST_FS_AR_BYTES); > + __vmread(GUEST_FS_SELECTOR, &sel); > + __vmread(GUEST_FS_LIMIT, &limit); > + __vmread(GUEST_FS_BASE, ®->base); > + __vmread(GUEST_FS_AR_BYTES, &attr); > break; > case x86_seg_gs: > - reg->sel = __vmread(GUEST_GS_SELECTOR); > - reg->limit = __vmread(GUEST_GS_LIMIT); > - reg->base = __vmread(GUEST_GS_BASE); > - attr = __vmread(GUEST_GS_AR_BYTES); > + __vmread(GUEST_GS_SELECTOR, &sel); > + __vmread(GUEST_GS_LIMIT, &limit); > + __vmread(GUEST_GS_BASE, ®->base); > + __vmread(GUEST_GS_AR_BYTES, &attr); > break; > case x86_seg_ss: > - reg->sel = __vmread(GUEST_SS_SELECTOR); > - reg->limit = __vmread(GUEST_SS_LIMIT); > - reg->base = __vmread(GUEST_SS_BASE); > - attr = __vmread(GUEST_SS_AR_BYTES); > + __vmread(GUEST_SS_SELECTOR, &sel); > + __vmread(GUEST_SS_LIMIT, &limit); > + __vmread(GUEST_SS_BASE, ®->base); > + __vmread(GUEST_SS_AR_BYTES, &attr); > break; > case x86_seg_tr: > - reg->sel = __vmread(GUEST_TR_SELECTOR); > - reg->limit = __vmread(GUEST_TR_LIMIT); > - reg->base = __vmread(GUEST_TR_BASE); > - attr = __vmread(GUEST_TR_AR_BYTES); > + __vmread(GUEST_TR_SELECTOR, &sel); > + __vmread(GUEST_TR_LIMIT, &limit); > + __vmread(GUEST_TR_BASE, ®->base); > + __vmread(GUEST_TR_AR_BYTES, &attr); > break; > case x86_seg_gdtr: > - reg->limit = __vmread(GUEST_GDTR_LIMIT); > - reg->base = __vmread(GUEST_GDTR_BASE); > + __vmread(GUEST_GDTR_LIMIT, &limit); > + __vmread(GUEST_GDTR_BASE, ®->base); > break; > case x86_seg_idtr: > - reg->limit = __vmread(GUEST_IDTR_LIMIT); > - reg->base = __vmread(GUEST_IDTR_BASE); > + __vmread(GUEST_IDTR_LIMIT, &limit); > + __vmread(GUEST_IDTR_BASE, ®->base); > break; > case x86_seg_ldtr: > - reg->sel = __vmread(GUEST_LDTR_SELECTOR); > - reg->limit = __vmread(GUEST_LDTR_LIMIT); > - reg->base = __vmread(GUEST_LDTR_BASE); > - attr = __vmread(GUEST_LDTR_AR_BYTES); > + __vmread(GUEST_LDTR_SELECTOR, &sel); > + __vmread(GUEST_LDTR_LIMIT, &limit); > + __vmread(GUEST_LDTR_BASE, ®->base); > + __vmread(GUEST_LDTR_AR_BYTES, &attr); > break; > default: > BUG(); > + return; This return is dead code. Otherwise, Reviewed-by: Andrew Cooper