[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
Hi, On 11/03/2015 13:50, Julien Grall wrote: 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: 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; } I though more about it and it won't be possible to do it unless we decode DOMCTL too. This is because the DOMCTL_get_device_group use a different structure and is only for PCI. So unless we decide to consolidate the 2 DOMCTL structures in a single one. I would prefer to keep the current solution with the suggestion made by Jan earlier. Regards, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |