[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH RFC v13 13/20] pvh: Set up more PV stuff in set_info_guest



>>> On 23.09.13 at 18:49, George Dunlap <george.dunlap@xxxxxxxxxxxxx> wrote:
> @@ -699,6 +699,18 @@ int arch_set_info_guest(
>                  return -EINVAL;
>          }
>      }
> +    else if ( is_pvh_vcpu(v) )
> +    {
> +        /* PVH 32bitfixme */
> +        ASSERT(!compat);
> +
> +        if ( c(ctrlreg[1]) || c(ldt_base) || c(ldt_ents) ||
> +             c(user_regs.cs) || c(user_regs.ss) || c(user_regs.es) ||
> +             c(user_regs.ds) || c(user_regs.fs) || c(user_regs.gs) ||
> +             c.nat->gdt_ents || c.nat->fs_base || c.nat->gs_base_user )
> +            return -EINVAL;
> +
> +    }
>  
>      v->fpu_initialised = !!(flags & VGCF_I387_VALID);
>  
> @@ -736,8 +748,24 @@ int arch_set_info_guest(
>  
>      if ( has_hvm_container_vcpu(v) )
>      {
> -        hvm_set_info_guest(v);
> -        goto out;
> +        hvm_set_info_guest(v, compat ? 0 : c.nat->gs_base_kernel);

I had pointed this out to Mukesh already: If you want to imply kernel
mode here, the checks above should verify that the kernel mode flag
is set in flags.

> + *
> + * Also note that when calling DOMCTL_setvcpucontext and VCPU_initialise
> + * for HVM and PVH guests, not all information in this structure is updated:
> + *
> + * - For HVM guests, the structures read include: fpu_ctxt (if
> + * VGCT_I387_VALID is set), flags, user_regs, debugreg[*]
> + *
> + * - PVH guests are the same as HVM guests, but additionally set cr3,
> + * and for 64-bit guests, gs_base_kernel.  Additionally, the following
> + * entries must be 0: ctrlreg[1], ldt_base, ldg_ents, user_regs.{cs,

ldt_ents

> + * ss, es, ds, fs, gs), gdt_ents, fs_base, and gs_base_user.  */
>  struct vcpu_guest_context {
>      /* FPU registers come first so they can be aligned for FXSAVE/FXRSTOR. */

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.