|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 14/18] PVH xen: Checks, asserts, and limitations for PVH
>>> On 25.06.13 at 02:01, Mukesh Rathor <mukesh.rathor@xxxxxxxxxx> wrote:
> --- a/xen/arch/x86/hvm/mtrr.c
> +++ b/xen/arch/x86/hvm/mtrr.c
> @@ -578,6 +578,9 @@ int32_t hvm_set_mem_pinned_cacheattr(
> {
> struct hvm_mem_pinned_cacheattr_range *range;
>
> + /* A PVH guest writes to MSR_IA32_CR_PAT natively. */
> + ASSERT(!is_pvh_domain(d));
This can't be an assert, or did I overlook you preventing the
function to be called for PVH guests.
The comment would then be wrong too, as there is a path
leading here from a domctl (i.e. unaffected by how the guest
itself would access the MSR).
> --- a/xen/arch/x86/physdev.c
> +++ b/xen/arch/x86/physdev.c
> @@ -475,6 +475,13 @@ ret_t do_physdev_op(int cmd,
> XEN_GUEST_HANDLE_PARAM(void) arg)
>
> case PHYSDEVOP_set_iopl: {
> struct physdev_set_iopl set_iopl;
> +
> + if ( is_pvh_vcpu(current) )
> + {
> + ret = -EINVAL;
> + break;
> + }
> +
> ret = -EFAULT;
> if ( copy_from_guest(&set_iopl, arg, 1) != 0 )
> break;
> @@ -488,6 +495,12 @@ ret_t do_physdev_op(int cmd,
> XEN_GUEST_HANDLE_PARAM(void) arg)
>
> case PHYSDEVOP_set_iobitmap: {
> struct physdev_set_iobitmap set_iobitmap;
> +
> + if ( is_pvh_vcpu(current) )
> + {
> + ret = -EINVAL;
> + break;
> + }
> ret = -EFAULT;
> if ( copy_from_guest(&set_iobitmap, arg, 1) != 0 )
> break;
I would really like these two to have better distinguishable error
codes (e.g. -EPERM).
> @@ -3325,6 +3327,9 @@ void do_device_not_available(struct cpu_user_regs *regs)
>
> BUG_ON(!guest_mode(regs));
>
> + /* PVH should not get here. (ctrlreg is not implemented). */
> + ASSERT(!is_pvh_vcpu(curr));
I think this is right, but the comment is confusing/misleading.
> --- a/xen/arch/x86/x86_64/traps.c
> +++ b/xen/arch/x86/x86_64/traps.c
> @@ -440,6 +440,8 @@ static long register_guest_callback(struct
> callback_register *reg)
> long ret = 0;
> struct vcpu *v = current;
>
> + ASSERT(!is_pvh_vcpu(v));
> +
For one, I don't think there has been anything so far making
clear that this is unreachable for PVH.
And then it is inconsistent to do this here, but not also in
unregister_guest_callback().
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |