From: Robin Murphy <robin.murphy@arm.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Yong Wu <yong.wu@mediatek.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Joerg Roedel <jroedel@suse.de>,
Alex Williamson <alex.williamson@redhat.com>,
Will Deacon <will.deacon@arm.com>,
Magnus Damm <damm+renesas@opensource.se>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org
Subject: Re: [PATCH] iommu: provide of_xlate pointer unconditionally
Date: Wed, 16 Mar 2016 10:47:01 +0000 [thread overview]
Message-ID: <56E939A5.6040905@arm.com> (raw)
In-Reply-To: <1458077877-474066-1-git-send-email-arnd@arndb.de>
On 15/03/16 21:37, Arnd Bergmann wrote:
> iommu drivers that support the standard DT bindings use a of_xlate
> callback pointer, but that is only part of struct iommu_ops when
> CONFIG_OF_IOMMU is enabled, leading to build errors in randconfig
> builds when that is not provided:
>
> drivers/iommu/mtk_iommu.c:497:2: error: unknown field 'of_xlate' specified in initializer
> .of_xlate = mtk_iommu_of_xlate,
> ^
> drivers/iommu/mtk_iommu.c:497:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
> .of_xlate = mtk_iommu_of_xlate,
> ^~~~~~~~~~~~~~~~~~
> drivers/iommu/mtk_iommu.c:497:14: note: (near initialization for 'mtk_iommu_ops.domain_get_attr')
>
> We can work around it by adding more #ifdefs in each driver, but
> it seems nicer to just allow setting the pointer even if it is
> unused. This makes the driver code look nicer, and it gives better
> compile-time coverage when test building on other architectures.
Makes sense. I don't know what the exact plan is for ACPI IORT, but I
would imagine that that could also tie in to the same mechanism.
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: 0df4fabe208d ("iommu/mediatek: Add mt8173 IOMMU driver")
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
FWIW the Exynos IOMMU driver has also been setting .of_xlate
unconditionally for a while, but that isn't covered by COMPILE_TEST.
> ---
> include/linux/iommu.h | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/include/linux/iommu.h b/include/linux/iommu.h
> index a5c539fa5d2b..ef7a6ecd8584 100644
> --- a/include/linux/iommu.h
> +++ b/include/linux/iommu.h
> @@ -195,9 +195,7 @@ struct iommu_ops {
> /* Get the number of windows per domain */
> u32 (*domain_get_windows)(struct iommu_domain *domain);
>
> -#ifdef CONFIG_OF_IOMMU
> int (*of_xlate)(struct device *dev, struct of_phandle_args *args);
> -#endif
>
> unsigned long pgsize_bitmap;
> void *priv;
>
WARNING: multiple messages have this Message-ID (diff)
From: robin.murphy@arm.com (Robin Murphy)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] iommu: provide of_xlate pointer unconditionally
Date: Wed, 16 Mar 2016 10:47:01 +0000 [thread overview]
Message-ID: <56E939A5.6040905@arm.com> (raw)
In-Reply-To: <1458077877-474066-1-git-send-email-arnd@arndb.de>
On 15/03/16 21:37, Arnd Bergmann wrote:
> iommu drivers that support the standard DT bindings use a of_xlate
> callback pointer, but that is only part of struct iommu_ops when
> CONFIG_OF_IOMMU is enabled, leading to build errors in randconfig
> builds when that is not provided:
>
> drivers/iommu/mtk_iommu.c:497:2: error: unknown field 'of_xlate' specified in initializer
> .of_xlate = mtk_iommu_of_xlate,
> ^
> drivers/iommu/mtk_iommu.c:497:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
> .of_xlate = mtk_iommu_of_xlate,
> ^~~~~~~~~~~~~~~~~~
> drivers/iommu/mtk_iommu.c:497:14: note: (near initialization for 'mtk_iommu_ops.domain_get_attr')
>
> We can work around it by adding more #ifdefs in each driver, but
> it seems nicer to just allow setting the pointer even if it is
> unused. This makes the driver code look nicer, and it gives better
> compile-time coverage when test building on other architectures.
Makes sense. I don't know what the exact plan is for ACPI IORT, but I
would imagine that that could also tie in to the same mechanism.
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: 0df4fabe208d ("iommu/mediatek: Add mt8173 IOMMU driver")
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
FWIW the Exynos IOMMU driver has also been setting .of_xlate
unconditionally for a while, but that isn't covered by COMPILE_TEST.
> ---
> include/linux/iommu.h | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/include/linux/iommu.h b/include/linux/iommu.h
> index a5c539fa5d2b..ef7a6ecd8584 100644
> --- a/include/linux/iommu.h
> +++ b/include/linux/iommu.h
> @@ -195,9 +195,7 @@ struct iommu_ops {
> /* Get the number of windows per domain */
> u32 (*domain_get_windows)(struct iommu_domain *domain);
>
> -#ifdef CONFIG_OF_IOMMU
> int (*of_xlate)(struct device *dev, struct of_phandle_args *args);
> -#endif
>
> unsigned long pgsize_bitmap;
> void *priv;
>
next prev parent reply other threads:[~2016-03-16 10:47 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-15 21:37 [PATCH] iommu: provide of_xlate pointer unconditionally Arnd Bergmann
2016-03-15 21:37 ` Arnd Bergmann
2016-03-15 21:37 ` Arnd Bergmann
2016-03-16 10:47 ` Robin Murphy [this message]
2016-03-16 10:47 ` Robin Murphy
2016-04-05 11:25 ` Joerg Roedel
2016-04-05 11:25 ` Joerg Roedel
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=56E939A5.6040905@arm.com \
--to=robin.murphy@arm.com \
--cc=alex.williamson@redhat.com \
--cc=arnd@arndb.de \
--cc=damm+renesas@opensource.se \
--cc=jroedel@suse.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=will.deacon@arm.com \
--cc=yong.wu@mediatek.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.