
aravindh at virtuata
Apr 27, 2012, 8:23 AM
Post #4 of 4
(54 views)
Permalink
|
|
Re: [PATCH 2 of 2] [v3] xen/x86: Add FS and GS base to HVM VCPU context
[In reply to]
|
|
On Apr 27, 2012 8:02 AM, "Keir Fraser" <keir [at] xen> wrote: > > On 27/04/2012 13:49, "Jan Beulich" <JBeulich [at] suse> wrote: > > >>>> On 25.04.12 at 20:38, Aravindh Puthiyaparambil <aravindh [at] virtuata > > >>>> 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. > It will be helpful if this can make it into 4.2. It does provide useful info for Windows guests. Thanks, Aravindh > -- Keir > > > Jan > > > >> Signed-off-by: Aravindh Puthiyaparambil <aravindh [at] virtuata> > >> > >> 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 > >> { > > > > > > > >
|