>>> On 10.10.17 at 18:01, <paul.durr...@citrix.com> wrote:
>> > @@ -3795,6 +3807,18 @@ int gnttab_map_frame(struct domain *d,
>> unsigned long idx, gfn_t gfn,
>> >      return rc;
>> >  }
>> >
>> > +int gnttab_get_frame(struct domain *d, unsigned long idx, mfn_t *mfn)
>> 
>> const struct domain * (I realize now that the same should have
>> been done for gnttab_map_frame() when it was introduced;
>> perhaps you could change that at the same time).
> 
> Again, the problem is that grow_table and functions it calls don't take a 
> const pointer. I tried cascading the const through to the underlying function 
> but the patch started to balloon so I think such work should be deferred.

Right, I had overlooked that. And it won't work, as
share_xen_page_with_guest() can't be passed a const pointer.

>> > @@ -993,6 +1018,11 @@ static int acquire_resource(const
>> xen_mem_acquire_resource_t *xmar)
>> >                                           xmar->nr_frames, mfn_list);
>> >          break;
>> >
>> > +    case XENMEM_resource_grant_table:
>> > +        rc = acquire_grant_table(d, xmar->id, xmar->frame,
>> > +                                 xmar->nr_frames, mfn_list);
>> > +        break;
>> 
>> Is this really generally useful with mfn_list[] having just two entries?
>> 
> 
> Good point. I'll increase the size of the array in this patch (to the 
> default table size of 32... I think that's a reasonable value to choose).

I suppose for the only current use you have for this (seeding the
grant table from the tool stack) even the two entries you have
right now would suffice. If, however, a full grant table is supposed
to be accessible this way, I can't see how a static upper limit will do.
Or if you intend the caller to do multiple invocations in such a case,
there ought to be a way to find out the (implementation) limit.

Jan


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

Reply via email to