[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 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.

> --- 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?

> @@ -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).

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.