From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel De Graaf Subject: Re: [PATCH v3 20/24] xen/passthrough: Extend XEN_DOMCTL_assign_device to support DT device Date: Mon, 23 Feb 2015 11:25:25 -0500 Message-ID: <54EB5475.3060900@tycho.nsa.gov> 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> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1YPvpX-0004Ru-Vx for xen-devel@lists.xenproject.org; Mon, 23 Feb 2015 16:26:00 +0000 In-Reply-To: <1424452643.30924.368.camel@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell , Julien Grall Cc: Wei Liu , Ian Jackson , tim@xen.org, stefano.stabellini@citrix.com, Jan Beulich , Machon Gregory , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org On 02/20/2015 12:17 PM, Ian Campbell wrote: > On Tue, 2015-01-13 at 14:25 +0000, Julien Grall wrote: >> TODO: Update the commit message >> >> A device node is described by a path. It will be used to retrieved the >> node in the device tree and assign the related device to the domain. >> >> Only device protected by an IOMMU can be assigned to a guest. >> >> Signed-off-by: Julien Grall >> Cc: Ian Jackson >> Cc: Wei Liu >> Cc: Jan Beulich >> >> --- >> Changes in v2: >> - Use a different number for XEN_DOMCTL_assign_dt_device >> --- >> tools/libxc/include/xenctrl.h | 10 ++++ >> tools/libxc/xc_domain.c | 95 ++++++++++++++++++++++++++++++++-- > > These bits all look fine. > >> +int iommu_do_dt_domctl(struct xen_domctl *domctl, struct domain *d, >> + XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl) >> +{ >> + int ret; >> + struct dt_device_node *dev; >> + >> + /* TODO: How to deal with XSM? */ > > Adding Daniel. > > It seems the PCI ones are protected by > xsm_test_assign_device(XSM_HOOK, domctl->u.assign_device.machine_sbdf); > > So it seem that either this needs to become "test_assign_pci_device" and > a similar "test_assign_dt_device" needs to be added and plumbed through > or it needs to grow a type parameter and take the union for the > identifier. Either would work, but a distinct hook seems simpler to me, especially as the call sites are distinct and the hook would process them differently. > The code to apply an XSM context to a DT node would need consideration > too I suppose? This may require a bit more thought. At first glance, the dt_phandle field seems to be an identifier that could be used by FLASK to identify a device using an ocontext lookup. Labeling would then be done in the same way as PCI devices and x86 legacy I/O ports. -- Daniel De Graaf National Security Agency