[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 04/13] iommu: push use of type-safe BFN and MFN into iommu_ops



On Sat, Jul 7, 2018 at 12:05 PM, Paul Durrant <paul.durrant@xxxxxxxxxx> wrote:
> @@ -787,7 +793,9 @@ int amd_iommu_reserve_domain_unity_map(struct domain 
> *domain,
>      gfn = phys_addr >> PAGE_SHIFT;
>      for ( i = 0; i < npages; i++ )
>      {
> -        rt = amd_iommu_map_page(domain, gfn +i, gfn +i, flags);
> +        unsigned long frame = gfn + i;
> +
> +        rt = amd_iommu_map_page(domain, _bfn(frame), _mfn(frame), flags);

Here's an example where the intermediate variable may actually improve
things, if only by avoiding code duplication. :-)

> @@ -2766,14 +2766,14 @@ static int __must_check arm_smmu_map_page(struct 
> domain *d, unsigned long bfn,
>          * The function guest_physmap_add_entry replaces the current mapping
>          * if there is already one...
>          */
> -       return guest_physmap_add_entry(d, _gfn(gfn), _mfn(mfn), 0, t);
> +       return guest_physmap_add_entry(d, gfn, mfn, 0, t);
>  }
>
> -static int __must_check arm_smmu_unmap_page(struct domain *d, unsigned long 
> bfn)
> +static int __must_check arm_smmu_unmap_page(struct domain *d, bfn_t bfn)
>  {
> -       unsigned long frame = bfn;
> -       unsigned long gfn = frame;
> -       unsigned long mfn = frame;
> +       unsigned long frame = bfn_x(bfn);
> +       gfn_t gfn = _gfn(frame);
> +       mfn_t mfn = _mfn(frame);

Even if we decide to use an intermediate variable in many other cases,
this construct in particular seems excessive.

Everything else looks good, thanks.

 -George

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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