From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: [PATCH 2 of 2] [v3] xen/x86: Add FS and GS base to HVM VCPU context Date: Fri, 27 Apr 2012 16:02:46 +0100 Message-ID: References: <4F9AB1F90200007800080769@nat28.tlf.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4F9AB1F90200007800080769@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 , Aravindh Puthiyaparambil Cc: xen-devel List-Id: xen-devel@lists.xenproject.org On 27/04/2012 13:49, "Jan Beulich" wrote: >>>> On 25.04.12 at 20:38, Aravindh Puthiyaparambil >>>> wrote: >> Add FS and GS base to the HVM VCPU context returned by xc_vcpu_getcontext() > > Given that we're in feature freeze right now - is this actually fixing some > shortcoming somewhere? Otherwise it may need to wait until 4.2 is out. I think we can make a judgement call on this one that it is obviously safe to check it in. Even if the patch is buggy, it's only filling in data fields with garbage, which were uninitialised garbage in the first place. -- Keir > Jan > >> Signed-off-by: Aravindh Puthiyaparambil >> >> diff -r be41f3b599d9 -r 1f39b9fe704f xen/arch/x86/domctl.c >> --- a/xen/arch/x86/domctl.c Wed Apr 25 11:35:29 2012 -0700 >> +++ b/xen/arch/x86/domctl.c Wed Apr 25 11:35:43 2012 -0700 >> @@ -1590,8 +1590,23 @@ void arch_get_info_guest(struct vcpu *v, >> c.nat->user_regs.es = sreg.sel; >> hvm_get_segment_register(v, x86_seg_fs, &sreg); >> c.nat->user_regs.fs = sreg.sel; >> +#ifdef __x86_64__ >> + c.nat->fs_base = sreg.base; >> +#endif >> hvm_get_segment_register(v, x86_seg_gs, &sreg); >> c.nat->user_regs.gs = sreg.sel; >> +#ifdef __x86_64__ >> + if ( ring_0(&c.nat->user_regs) ) >> + { >> + c.nat->gs_base_kernel = sreg.base; >> + c.nat->gs_base_user = hvm_get_shadow_gs_base(v); >> + } >> + else >> + { >> + c.nat->gs_base_user = sreg.base; >> + c.nat->gs_base_kernel = hvm_get_shadow_gs_base(v); >> + } >> +#endif >> } >> else >> { > > >