|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 20/24] xen/passthrough: Extend XEN_DOMCTL_assign_device to support DT device
On Wed, 2015-03-11 at 13:50 +0000, Julien Grall wrote:
> Hi Ian,
>
> On 11/03/2015 12:37, Ian Campbell wrote:
> > On Tue, 2015-03-10 at 16:33 +0000, Julien Grall wrote:
> >> Hi Ian,
> >>
> >> On 20/02/15 17:17, Ian Campbell wrote:
> >>>> + /* TODO: Do we need to check is_dying? Mostly to protect against
> >>>> + * hypercall trying to passthrough a device while we are
> >>>> + * dying.
> >>>
> >>> FWIW the PCI case appears not to care...
> >>
> >> There is one place in XEN_DOMCTL_assign_device...
> >>
> >> Although I don't understand much the usage of is_dying.
> >>
> >>>> + */
> >>>> +
> >>>> + switch ( domctl->cmd )
> >>>> + {
> >>>> + case XEN_DOMCTL_assign_device:
> >>>> + ret = -ENOSYS;
> >>>> + if ( domctl->u.assign_device.dev != XEN_DOMCTL_DEV_DT )
> >>>> + break;
> >>>
> >>> You added something similar to iommu_do_pci_domctl, would it not be
> >>> preferable for the caller to switch on domctl->u.assign_device.dev and
> >>> call the correct iommu_do_*_domctl?
> >>
> >> I though about it. It would require to stub iommu_do_*_domctl. So I
> >> preferred to chose the current solution.
> >
> > You mean iommu_do_{pci,dt}_domctl?
> >
> > IIRC you already added suitable #defines for when these features are
> > present, so reusing them at the call sites wouldn't be too bad, or else
> > stubs aren't the worst thing either.
>
> Hmmm I think I got you point now. Do you mean have something like:
That's one option I'd be happy with, yes. Jan might disagree.
>
> switch (domctl->u.assign_device.dev)
> {
> #ifdef HAS_PCI
> case XEN_DOMCTL_DEV_PCI:
> ret = iommu_do_pci_domctl();
> break;
> #endif
> #ifdef HAS_DEVICE_TREE
> case XEN_DOMCTL_DEV_DT:
> ret = iommu_do_dt_domctl()
> break;
> #endif
>
> default:
> ret = -ENOSYS;
> }
>
> Regards,
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |