All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oleksandr <olekstysh@gmail.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org,
	Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
	Stefano Stabellini <sstabellini@kernel.org>,
	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>,
	Bertrand Marquis <bertrand.marquis@arm.com>,
	Rahul Singh <rahul.singh@arm.com>,
	Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>,
	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Subject: Re: [PATCH V3 2/2] iommu/arm: Remove code duplication in all IOMMU drivers
Date: Thu, 27 Jan 2022 22:45:16 +0200	[thread overview]
Message-ID: <148b97bf-792c-1b0e-cfaf-56a5709969a0@gmail.com> (raw)
In-Reply-To: <1532ec77-17d3-665b-3c19-ab8fd4147a7d@xen.org>


On 27.01.22 22:03, Julien Grall wrote:
> Hi,


Hi Julien


>
> On 27/01/2022 19:55, Oleksandr Tyshchenko wrote:
>> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>>
>> All IOMMU drivers on Arm perform almost the same generic actions in
>> hwdom_init callback. Move this code to common arch_iommu_hwdom_init()
>> in order to get rid of code duplication.
>>
>> Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
>> Reviewed-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
>> Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
>
> IMO, the reviewed-by tags should have been dropped with the changes 
> you made. 

Yes, you are right.  I apologize, my fault.


> So I would like both reviewer to confirm they are happy with the change.
>
> This also technically needs an ack from Bertrand/Rahul.

Yes, for the SMMU V3.


>
>> ---
>> Changes V1 -> V2:
>>     - add R-b
>>
>> Changes V2 -> V3:
>>     - drop platform specific *_iommu_hwdom_init(), make .hwdom_init
>>       to directly point to the common arch_iommu_hwdom_init()
>> ---
>>   xen/drivers/passthrough/arm/iommu.c      |  7 +++++++
>>   xen/drivers/passthrough/arm/ipmmu-vmsa.c | 15 +--------------
>>   xen/drivers/passthrough/arm/smmu-v3.c    | 17 +----------------
>>   xen/drivers/passthrough/arm/smmu.c       | 17 +----------------
>>   4 files changed, 10 insertions(+), 46 deletions(-)
>>
>> diff --git a/xen/drivers/passthrough/arm/iommu.c 
>> b/xen/drivers/passthrough/arm/iommu.c
>> index ee653a9..fc45318 100644
>> --- a/xen/drivers/passthrough/arm/iommu.c
>> +++ b/xen/drivers/passthrough/arm/iommu.c
>> @@ -134,6 +134,13 @@ void arch_iommu_domain_destroy(struct domain *d)
>>     void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
>>   {
>> +    /* Set to false options not supported on ARM. */
>> +    if ( iommu_hwdom_inclusive )
>> +        printk(XENLOG_WARNING "map-inclusive dom0-iommu option is 
>> not supported on ARM\n");
>> +    iommu_hwdom_inclusive = false;
>> +    if ( iommu_hwdom_reserved == 1 )
>> +        printk(XENLOG_WARNING "map-reserved dom0-iommu option is not 
>> supported on ARM\n");
>> +    iommu_hwdom_reserved = 0;
>>   }
>>     /*
>> diff --git a/xen/drivers/passthrough/arm/ipmmu-vmsa.c 
>> b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
>> index c912120..d2572bc 100644
>> --- a/xen/drivers/passthrough/arm/ipmmu-vmsa.c
>> +++ b/xen/drivers/passthrough/arm/ipmmu-vmsa.c
>> @@ -1329,19 +1329,6 @@ static int ipmmu_iommu_domain_init(struct 
>> domain *d)
>>       return 0;
>>   }
>>   -static void __hwdom_init ipmmu_iommu_hwdom_init(struct domain *d)
>> -{
>> -    /* Set to false options not supported on ARM. */
>> -    if ( iommu_hwdom_inclusive )
>> -        printk(XENLOG_WARNING "ipmmu: map-inclusive dom0-iommu 
>> option is not supported on ARM\n");
>> -    iommu_hwdom_inclusive = false;
>> -    if ( iommu_hwdom_reserved == 1 )
>> -        printk(XENLOG_WARNING "ipmmu: map-reserved dom0-iommu option 
>> is not supported on ARM\n");
>> -    iommu_hwdom_reserved = 0;
>> -
>> -    arch_iommu_hwdom_init(d);
>> -}
>> -
>>   static void ipmmu_iommu_domain_teardown(struct domain *d)
>>   {
>>       struct ipmmu_vmsa_xen_domain *xen_domain = 
>> dom_iommu(d)->arch.priv;
>> @@ -1369,7 +1356,7 @@ static void ipmmu_iommu_domain_teardown(struct 
>> domain *d)
>>   static const struct iommu_ops ipmmu_iommu_ops =
>>   {
>>       .init            = ipmmu_iommu_domain_init,
>> -    .hwdom_init      = ipmmu_iommu_hwdom_init,
>> +    .hwdom_init      = arch_iommu_hwdom_init,
>>       .teardown        = ipmmu_iommu_domain_teardown,
>>       .iotlb_flush     = ipmmu_iotlb_flush,
>>       .iotlb_flush_all = ipmmu_iotlb_flush_all,
>> diff --git a/xen/drivers/passthrough/arm/smmu-v3.c 
>> b/xen/drivers/passthrough/arm/smmu-v3.c
>> index d115df7..71b022f 100644
>> --- a/xen/drivers/passthrough/arm/smmu-v3.c
>> +++ b/xen/drivers/passthrough/arm/smmu-v3.c
>> @@ -3402,21 +3402,6 @@ static int 
>> arm_smmu_iommu_xen_domain_init(struct domain *d)
>>     }
>>   -static void __hwdom_init arm_smmu_iommu_hwdom_init(struct domain *d)
>> -{
>> -    /* Set to false options not supported on ARM. */
>> -    if (iommu_hwdom_inclusive)
>> -        printk(XENLOG_WARNING
>> -        "map-inclusive dom0-iommu option is not supported on ARM\n");
>> -    iommu_hwdom_inclusive = false;
>> -    if (iommu_hwdom_reserved == 1)
>> -        printk(XENLOG_WARNING
>> -        "map-reserved dom0-iommu option is not supported on ARM\n");
>> -    iommu_hwdom_reserved = 0;
>> -
>> -    arch_iommu_hwdom_init(d);
>> -}
>> -
>>   static void arm_smmu_iommu_xen_domain_teardown(struct domain *d)
>>   {
>>       struct arm_smmu_xen_domain *xen_domain = dom_iommu(d)->arch.priv;
>> @@ -3427,7 +3412,7 @@ static void 
>> arm_smmu_iommu_xen_domain_teardown(struct domain *d)
>>     static const struct iommu_ops arm_smmu_iommu_ops = {
>>       .init        = arm_smmu_iommu_xen_domain_init,
>> -    .hwdom_init        = arm_smmu_iommu_hwdom_init,
>> +    .hwdom_init        = arch_iommu_hwdom_init,
>>       .teardown        = arm_smmu_iommu_xen_domain_teardown,
>>       .iotlb_flush        = arm_smmu_iotlb_flush,
>>       .iotlb_flush_all    = arm_smmu_iotlb_flush_all,
>> diff --git a/xen/drivers/passthrough/arm/smmu.c 
>> b/xen/drivers/passthrough/arm/smmu.c
>> index c9dfc4c..b186c28 100644
>> --- a/xen/drivers/passthrough/arm/smmu.c
>> +++ b/xen/drivers/passthrough/arm/smmu.c
>> @@ -2849,21 +2849,6 @@ static int arm_smmu_iommu_domain_init(struct 
>> domain *d)
>>       return 0;
>>   }
>>   -static void __hwdom_init arm_smmu_iommu_hwdom_init(struct domain *d)
>> -{
>> -    /* Set to false options not supported on ARM. */
>> -    if ( iommu_hwdom_inclusive )
>> -        printk(XENLOG_WARNING
>> -        "map-inclusive dom0-iommu option is not supported on ARM\n");
>> -    iommu_hwdom_inclusive = false;
>> -    if ( iommu_hwdom_reserved == 1 )
>> -        printk(XENLOG_WARNING
>> -        "map-reserved dom0-iommu option is not supported on ARM\n");
>> -    iommu_hwdom_reserved = 0;
>> -
>> -    arch_iommu_hwdom_init(d);
>> -}
>> -
>>   static void arm_smmu_iommu_domain_teardown(struct domain *d)
>>   {
>>       struct arm_smmu_xen_domain *xen_domain = dom_iommu(d)->arch.priv;
>> @@ -2874,7 +2859,7 @@ static void 
>> arm_smmu_iommu_domain_teardown(struct domain *d)
>>     static const struct iommu_ops arm_smmu_iommu_ops = {
>>       .init = arm_smmu_iommu_domain_init,
>> -    .hwdom_init = arm_smmu_iommu_hwdom_init,
>> +    .hwdom_init = arch_iommu_hwdom_init,
>>       .add_device = arm_smmu_dt_add_device_generic,
>>       .teardown = arm_smmu_iommu_domain_teardown,
>>       .iotlb_flush = arm_smmu_iotlb_flush,
>
-- 
Regards,

Oleksandr Tyshchenko



  reply	other threads:[~2022-01-27 20:45 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-27 19:55 [PATCH V3 0/2] Add support for Renesas R-Car S4 IPMMU and other misc changes (remaining 2 patches) Oleksandr Tyshchenko
2022-01-27 19:55 ` [PATCH V3 1/2] iommu/ipmmu-vmsa: Use refcount for the micro-TLBs Oleksandr Tyshchenko
2022-01-27 19:55 ` [PATCH V3 2/2] iommu/arm: Remove code duplication in all IOMMU drivers Oleksandr Tyshchenko
2022-01-27 20:03   ` Julien Grall
2022-01-27 20:45     ` Oleksandr [this message]
2022-01-28 18:08     ` Volodymyr Babchuk
2022-01-28 10:11   ` Rahul Singh
2022-01-31 18:36 ` [PATCH V3 0/2] Add support for Renesas R-Car S4 IPMMU and other misc changes (remaining 2 patches) Julien Grall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=148b97bf-792c-1b0e-cfaf-56a5709969a0@gmail.com \
    --to=olekstysh@gmail.com \
    --cc=Volodymyr_Babchuk@epam.com \
    --cc=bertrand.marquis@arm.com \
    --cc=julien@xen.org \
    --cc=oleksandr_andrushchenko@epam.com \
    --cc=oleksandr_tyshchenko@epam.com \
    --cc=rahul.singh@arm.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    --cc=yoshihiro.shimoda.uh@renesas.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.