[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [v3][PATCH 04/16] xen/passthrough: extend hypercall to support rdm reservation policy
On 2015/6/17 18:11, Jan Beulich wrote: On 11.06.15 at 03:15, <tiejun.chen@xxxxxxxxx> wrote:@@ -899,7 +899,7 @@ int set_mmio_p2m_entry(struct domain *d, unsigned long gfn, mfn_t mfn, } int set_identity_p2m_entry(struct domain *d, unsigned long gfn, - p2m_access_t p2ma) + p2m_access_t p2ma, u32 flag)Please avoid using fixed width types unless really needed. Using uint32_t in the public interface is the right thing to do, but in all internal parts affected this can simply be (unsigned) int. Will do. --- a/xen/drivers/passthrough/device_tree.c +++ b/xen/drivers/passthrough/device_tree.c @@ -52,7 +52,8 @@ int iommu_assign_dt_device(struct domain *d, struct dt_device_node *dev) goto fail; } - rc = hd->platform_ops->assign_device(d, 0, dt_to_dev(dev)); + rc = hd->platform_ops->assign_device(d, 0, dt_to_dev(dev), + XEN_DOMCTL_DEV_NO_RDM); if ( rc ) goto fail; @@ -148,6 +149,14 @@ int iommu_do_dt_domctl(struct xen_domctl *domctl, struct domain *d, if ( domctl->u.assign_device.dev != XEN_DOMCTL_DEV_DT ) break; + if ( domctl->u.assign_device.flag == XEN_DOMCTL_DEV_NO_RDM ) + { + printk(XENLOG_G_ERR "XEN_DOMCTL_assign_device: assign \"%s\"" + " to dom%u failed (%d) since we don't support RDM.\n", + dt_node_full_name(dev), d->domain_id, ret); + break; + }Isn't the condition inverted, i.e. don't you mean != there? You're right and thanks. @@ -1577,9 +1578,10 @@ int iommu_do_pci_domctl( seg = machine_sbdf >> 16; bus = PCI_BUS(machine_sbdf); devfn = PCI_DEVFN2(machine_sbdf); + flag = domctl->u.assign_device.flag; ret = device_assigned(seg, bus, devfn) ?: - assign_device(d, seg, bus, devfn); + assign_device(d, seg, bus, devfn, flag);I think you should range check the flag passed to make future extensions possible (and to avoid ambiguity on what out of range values would mean). Yeah. Maybe I can set this comment,/* Make sure this is always the last. */ #define XEN_DOMCTL_DEV_NO_RDM 2 uint32_t flag; /* flag of assigned device */ and then flag = domctl->u.assign_device.flag; if ( flag > XEN_DOMCTL_DEV_NO_RDM ) { printk(XENLOG_G_ERR "XEN_DOMCTL_assign_device: " "assign %04x:%02x:%02x.%u to dom%d failed " "with unknown rdm flag %x. (%d)\n", seg, bus, PCI_SLOT(devfn), PCI_FUNC(devfn), d->domain_id, flag, ret); ret = -EINVAL; break; } Thanks Tiejun Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |