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

Re: [Xen-devel] [PATCH 4/4] xen: Add V4V implementation



On 5 October 2012 10:07, Jan Beulich <JBeulich@xxxxxxxx> wrote:
>>>> On 05.10.12 at 10:52, "Jan Beulich" <JBeulich@xxxxxxxx> wrote:
>>>>> On 04.10.12 at 19:00, Jean Guyader <jean.guyader@xxxxxxxxx> wrote:
>>> On 4 October 2012 16:12, Tim Deegan <tim@xxxxxxx> wrote:
>>>> AIUI you need to use compat_handle_okay() instead of guest_handle_okay()
>>>> to check the handles if is_pv_32on64_domain(current).
>>>>
>>>
>>> How about something like that?
>>
>> Could be done, but not by modifying guest_handle_okay() (which
>> penalizes all its users), nor by (incorrectly) open-coding
>> compat_handle_okay(). And neither should any such implementation
>> use is_pv_32on64_domain() twice - use the conditional operator
>> instead (that way you also avoid evaluating arguments twice).
>>
>> So you could either introduce e.g. any_guest_handle_okay(), or
>> switch all current users of guest_handle_okay() to, say,
>> native_handle_okay() (perhaps with the exception of those where
>> the compat mode wrapper source files #define guest_handle_okay()
>> to compat_handle_okay(), which could then be dropped).
>
> Actually, after some more recalling of how all this was put together,
> you can use the existing guest_handle_okay() on anything that
> legitimately is a XEN_GUEST_HANDLE(). In particular, direct
> hypercall arguments can be expressed that way since they get
> properly zero-extended from 32 to 64 bits on the hypercall entry
> path. The things needing extra consideration are only handles
> embedded in structures - you need to either translate these
> handles, or validate that their upper halves are zero.
>
> That's also one of the reasons why I didn't make the guest
> memory accessor/validation macros transparently handle both
> cases.
>

Ok, thanks for the background info.

In my hypercall I only use direct hypercall argument handle.
The other handles that I use have been created with
guest_handle_add_offset from the original argument handle.

Considering this, I think I might be ok.

Thanks,
Jean

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