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

Re: [Xen-devel] [PATCH 09/24] PVH xen: Introduce PVH guest type and some basic changes.



>>> On 18.07.13 at 04:32, Mukesh Rathor <mukesh.rathor@xxxxxxxxxx> wrote:
> Chagnes in V8:

Same spelling typo in all of the change title lines...

>   - Got to VMCS for DPL check instead of checking the rpl in
>     guest_kernel_mode.  Note, we drop the const qualifier from
>     vcpu_show_registers() to accomodate the hvm function call in
>     guest_kernel_mode().
>   - Also, hvm_kernel_mode is put in hvm.c because it's called from
>     guest_kernel_mode in regs.h which is a pretty early header include.
>     Hence, we can't place it in hvm.h like other similar functions.

Are you saying that because you tried it, or just because it looks
like so? The use of the function is in a macro, and hence if the
macro isn't used too early this could still work out. I say this
because the function would clearly benefit from getting inlined.

> --- a/xen/include/asm-x86/desc.h
> +++ b/xen/include/asm-x86/desc.h
> @@ -38,7 +38,9 @@
>  
>  #ifndef __ASSEMBLY__
>  
> -#define GUEST_KERNEL_RPL(d) (is_pv_32bit_domain(d) ? 1 : 3)
> +/* PVH 32bitfixme : see emulate_gate_op call from do_general_protection */
> +#define GUEST_KERNEL_RPL(d) ({ ASSERT(!is_pvh_domain(d)); \
> +                               is_pv_32bit_domain(d) ? 1 : 3; })

Sorry for having overlooked this earlier - this really ought to
assert for is_pv_domain(), if any assertion is to be added here
at all.

> --- a/xen/include/asm-x86/x86_64/regs.h
> +++ b/xen/include/asm-x86/x86_64/regs.h
> @@ -10,10 +10,13 @@
>  #define ring_2(r)    (((r)->cs & 3) == 2)
>  #define ring_3(r)    (((r)->cs & 3) == 3)
>  
> -#define guest_kernel_mode(v, r)                                 \
> -    (!is_pv_32bit_vcpu(v) ?                                     \
> -     (ring_3(r) && ((v)->arch.flags & TF_kernel_mode)) :        \
> -     (ring_1(r)))
> +bool_t hvm_kernel_mode(struct vcpu *);
> +
> +#define guest_kernel_mode(v, r)                                   \
> +    (is_pvh_vcpu(v) ? (hvm_kernel_mode(v)) :                      \
> +     (!is_pv_32bit_vcpu(v) ?                                      \
> +      (ring_3(r) && ((v)->arch.flags & TF_kernel_mode)) :         \
> +      (ring_1(r))))

While I see that you attempt to follow the style used here before,
it has been inconsistent and shouldn't be made worse: Please drop
the extra parentheses around function calls / function-like macro
invocations.

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®.