From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [PATCH v3 20/24] xen/passthrough: Extend XEN_DOMCTL_assign_device to support DT device Date: Wed, 11 Mar 2015 13:55:54 +0000 Message-ID: <1426082154.21353.246.camel@citrix.com> References: <1421159133-31526-1-git-send-email-julien.grall@linaro.org> <1421159133-31526-21-git-send-email-julien.grall@linaro.org> <1424452643.30924.368.camel@citrix.com> <54FF1CF6.5030702@linaro.org> <1426077434.21353.237.camel@citrix.com> <55004819.8090401@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1YVh7D-000377-JF for xen-devel@lists.xenproject.org; Wed, 11 Mar 2015 13:56:03 +0000 In-Reply-To: <55004819.8090401@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Julien Grall Cc: Wei Liu , Ian Jackson , tim@xen.org, stefano.stabellini@citrix.com, Jan Beulich , xen-devel@lists.xenproject.org, Daniel De Graaf List-Id: xen-devel@lists.xenproject.org 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, >