|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 4/4] xen/pci: solve compilation error on ARM with HAS_PCI enabled.
Hello Jan,
> On 6 Nov 2020, at 9:21 am, Jan Beulich <jbeulich@xxxxxxxx> wrote:
>
> On 03.11.2020 16:59, Rahul Singh wrote:
>> If mem-sharing, mem-paging and log-dirty functionality is not enabled
>> for architecture when HAS_PCI is enabled, compiler will throw an error.
>
> Nit: Is it really "and", not "or”?
Ok yes I will fix in next version.
>
>> @@ -1418,12 +1417,7 @@ static int assign_device(struct domain *d, u16 seg,
>> u8 bus, u8 devfn, u32 flag)
>> if ( !is_iommu_enabled(d) )
>> return 0;
>>
>> - /* Prevent device assign if mem paging or mem sharing have been
>> - * enabled for this domain */
>> - if ( d != dom_io &&
>> - unlikely(mem_sharing_enabled(d) ||
>> - vm_event_check_ring(d->vm_event_paging) ||
>> - p2m_get_hostp2m(d)->global_logdirty) )
>> + if( !arch_iommu_usable(d) )
>> return -EXDEV;
>
> While iirc I did suggest this name, seeing it used here leaves me
> somewhat unhappy with the name, albeit I also can't think of any
> better alternative right now. Maybe arch_iommu_use_permitted()?
Ok I will modify as per your suggestion.
>
>> @@ -315,6 +316,18 @@ int iommu_update_ire_from_msi(
>> ? iommu_call(&iommu_ops, update_ire_from_msi, msi_desc, msg) : 0;
>> }
>>
>> +bool_t arch_iommu_usable(struct domain *d)
>
> Just bool please and I very much hope the parameter can be const.
Ok I will fix in next version.
>
>> +{
>> +
>> + /* Prevent device assign if mem paging or mem sharing have been
>> + * enabled for this domain */
>
> Please correct comment style as you move it.
Ok.
>
>> + if ( d != dom_io && unlikely(mem_sharing_enabled(d) ||
>> + vm_event_check_ring(d->vm_event_paging) ||
>> + p2m_get_hostp2m(d)->global_logdirty) )
>
> You've screwed up indentation, and I don't see why ...
I will fix in next version.
>
>> + return false;
>> + else
>> + return true;
>> +}
>
> ... this can't be a simple single return statement anyway:
>
> return d == dom_io ||
> likely(!mem_sharing_enabled(d) &&
> !vm_event_check_ring(d->vm_event_paging) &&
> !p2m_get_hostp2m(d)->global_logdirty);
>
> In the course of moving I'd also suggest dropping the use of
> likely() here: The way it's used (on an && expression) isn't
> normally having much effect anyway. If anything it should imo
> be
>
> return d == dom_io ||
> (likely(!mem_sharing_enabled(d)) &&
> likely(!vm_event_check_ring(d->vm_event_paging)) &&
> likely(!p2m_get_hostp2m(d)->global_logdirty));
>
> Any transformation to this effect wants mentioning in the
> description, though.
Ok I will modify as per your suggestion.
>
> Jan
Regards,
Rahul
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |