Re: [PATCH 1/2] irqdomain: add empty irq_domain_check_msi_remap

From: Auger Eric
Date: Thu Mar 02 2017 - 09:08:48 EST


Hi Yousaf,

On 02/03/2017 13:23, Mian Yousaf Kaukab wrote:
> On 03/02/2017 11:24 AM, Auger Eric wrote:
>> Hi Mian Yousaf,
>>
>> On 02/03/2017 11:01, Mian Yousaf Kaukab wrote:
>>> Fix following build error for s390:
>>> drivers/vfio/vfio_iommu_type1.c: In function
>>> 'vfio_iommu_type1_attach_group':
>>> drivers/vfio/vfio_iommu_type1.c:1290:25: error: implicit declaration
>>> of function 'irq_domain_check_msi_remap'
>>>
>>> Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@xxxxxxxx>
>>> ---
>>> include/linux/irqdomain.h | 4 ++++
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
>>> index 188eced6813e..137817b08cdc 100644
>>> --- a/include/linux/irqdomain.h
>>> +++ b/include/linux/irqdomain.h
>>> @@ -524,6 +524,10 @@ static inline struct irq_domain
>>> *irq_find_matching_fwnode(
>>> {
>>> return NULL;
>>> }
>>> +static inline bool irq_domain_check_msi_remap(void)
>>> +{
>>> + return true;
>> By default you should rather return false, reporting there is no MSI
>> remapping capability on irq domain side. Besides thank you for the fix.
> I choose to return true based on the function header comments of
> irq_domain_check_msi_remap. It says
>
> "Return: false if any MSI irq domain does not support IRQ remapping,
> true otherwise (including if there is no MSI irq domain)"
>
> So function should return true in case of no MSI irq domain. Have I miss
> understood this?
This behavior is indeed mandated on ARM - where MSI are translated by
the smmu - to allow safe device assignment if there is no MSI domain,
ie. in this situation there is no risk an assigned device writes into an
MSI doorbell.

As the function is not implemented at all in your case, personally I
would rather be defensive though and return false. You were not able to
check the capability.

Thanks

Eric
>
> BR,
> Yousaf