|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 4/4] xen: introduce XENMEM_exchange_and_pin and XENMEM_unpin
On Tue, 10 Sep 2013, Jan Beulich wrote:
> > + unsigned long i;
> > + struct xen_unpin unpin;
> > + xen_pfn_t gpfn;
> > + struct domain *d;
> > +
> > + if ( copy_from_guest(&unpin, arg, 1) )
> > + return -EFAULT;
> > +
> > + /* Various sanity checks. */
> > + if ( /* Extent orders are sensible? */
> > + (unpin.in.extent_order > MAX_ORDER) ||
> > + /* Sizes of input list do not overflow a long? */
> > + ((~0UL >> unpin.in.extent_order) < unpin.in.nr_extents) )
> > + return -EFAULT;
> > +
> > + if ( !guest_handle_okay(unpin.in.extent_start, unpin.in.nr_extents) )
> > + return -EFAULT;
> > +
> > + d = rcu_lock_domain_by_any_id(unpin.in.domid);
> > + if ( d == NULL )
> > + {
> > + rc = -ESRCH;
> > + goto fail;
> > + }
> > +
> > + for ( i = 0; i < unpin.in.nr_extents; i++ )
> > + {
> > + if ( unlikely(__copy_from_guest_offset(
> > + &gpfn, unpin.in.extent_start, i, 1)) )
> > + {
> > + rc = -EFAULT;
> > + goto partial;
> > + }
> > +
>
> Want/need to make sure gpfn is suitable aligned for the passed in
> extent order? Depends on whether guest_physmap_unpin_range()
> is expected to always cope with a mis-aligned one.
I think it should be able to cope with non order aligned requests.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |