From: Don Dutile <ddutile-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Cc: Varun.Sethi-KZfg59tc24xl57MIdRCFDg@public.gmane.org
Subject: Re: [PATCH 1/5 v10] iommu/fsl: Make iova u64 in the iommu_iova_to_phys API.
Date: Mon, 25 Mar 2013 11:07:45 -0400 [thread overview]
Message-ID: <51506841.4090104@redhat.com> (raw)
In-Reply-To: <1363991700-21454-3-git-send-email-Varun.Sethi-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
I agree that unsigned long was an improper choice for iova's,
but why aren't they dma_addr_t ? ... an iova is a dma-addr, just
a 'virtual' one wrt phys-addr.
On 03/22/2013 06:34 PM, Varun Sethi wrote:
> This is required in case of PAMU, as it can support a window size of up
> to 64G (even on 32bit).
>
> Signed-off-by: Varun Sethi<Varun.Sethi-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
> ---
> - no change in v10.
>
> drivers/iommu/amd_iommu.c | 2 +-
> drivers/iommu/exynos-iommu.c | 2 +-
> drivers/iommu/intel-iommu.c | 2 +-
> drivers/iommu/iommu.c | 3 +--
> drivers/iommu/msm_iommu.c | 2 +-
> drivers/iommu/omap-iommu.c | 2 +-
> drivers/iommu/shmobile-iommu.c | 2 +-
> drivers/iommu/tegra-gart.c | 2 +-
> drivers/iommu/tegra-smmu.c | 2 +-
> include/linux/iommu.h | 9 +++------
> 10 files changed, 12 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
> index 98f555d..42f6a71 100644
> --- a/drivers/iommu/amd_iommu.c
> +++ b/drivers/iommu/amd_iommu.c
> @@ -3412,7 +3412,7 @@ static size_t amd_iommu_unmap(struct iommu_domain *dom, unsigned long iova,
> }
>
> static phys_addr_t amd_iommu_iova_to_phys(struct iommu_domain *dom,
> - unsigned long iova)
> + u64 iova)
> {
> struct protection_domain *domain = dom->priv;
> unsigned long offset_mask;
> diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
> index 238a3ca..541e81b 100644
> --- a/drivers/iommu/exynos-iommu.c
> +++ b/drivers/iommu/exynos-iommu.c
> @@ -1027,7 +1027,7 @@ done:
> }
>
> static phys_addr_t exynos_iommu_iova_to_phys(struct iommu_domain *domain,
> - unsigned long iova)
> + u64 iova)
> {
> struct exynos_iommu_domain *priv = domain->priv;
> unsigned long *entry;
> diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
> index 0099667..c9663ac 100644
> --- a/drivers/iommu/intel-iommu.c
> +++ b/drivers/iommu/intel-iommu.c
> @@ -4111,7 +4111,7 @@ static size_t intel_iommu_unmap(struct iommu_domain *domain,
> }
>
> static phys_addr_t intel_iommu_iova_to_phys(struct iommu_domain *domain,
> - unsigned long iova)
> + u64 iova)
> {
> struct dmar_domain *dmar_domain = domain->priv;
> struct dma_pte *pte;
> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
> index b972d43..39106ec 100644
> --- a/drivers/iommu/iommu.c
> +++ b/drivers/iommu/iommu.c
> @@ -706,8 +706,7 @@ void iommu_detach_group(struct iommu_domain *domain, struct iommu_group *group)
> }
> EXPORT_SYMBOL_GPL(iommu_detach_group);
>
> -phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
> - unsigned long iova)
> +phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, u64 iova)
> {
> if (unlikely(domain->ops->iova_to_phys == NULL))
> return 0;
> diff --git a/drivers/iommu/msm_iommu.c b/drivers/iommu/msm_iommu.c
> index 6a8870a..fcd14a3 100644
> --- a/drivers/iommu/msm_iommu.c
> +++ b/drivers/iommu/msm_iommu.c
> @@ -554,7 +554,7 @@ fail:
> }
>
> static phys_addr_t msm_iommu_iova_to_phys(struct iommu_domain *domain,
> - unsigned long va)
> + u64 va)
> {
> struct msm_priv *priv;
> struct msm_iommu_drvdata *iommu_drvdata;
> diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
> index 6ac02fa..102ae56 100644
> --- a/drivers/iommu/omap-iommu.c
> +++ b/drivers/iommu/omap-iommu.c
> @@ -1219,7 +1219,7 @@ static void omap_iommu_domain_destroy(struct iommu_domain *domain)
> }
>
> static phys_addr_t omap_iommu_iova_to_phys(struct iommu_domain *domain,
> - unsigned long da)
> + u64 da)
> {
> struct omap_iommu_domain *omap_domain = domain->priv;
> struct omap_iommu *oiommu = omap_domain->iommu_dev;
> diff --git a/drivers/iommu/shmobile-iommu.c b/drivers/iommu/shmobile-iommu.c
> index b6e8b57..9216802 100644
> --- a/drivers/iommu/shmobile-iommu.c
> +++ b/drivers/iommu/shmobile-iommu.c
> @@ -296,7 +296,7 @@ done:
> }
>
> static phys_addr_t shmobile_iommu_iova_to_phys(struct iommu_domain *domain,
> - unsigned long iova)
> + u64 iova)
> {
> struct shmobile_iommu_domain *sh_domain = domain->priv;
> uint32_t l1entry = 0, l2entry = 0;
> diff --git a/drivers/iommu/tegra-gart.c b/drivers/iommu/tegra-gart.c
> index 8643757..17179c0 100644
> --- a/drivers/iommu/tegra-gart.c
> +++ b/drivers/iommu/tegra-gart.c
> @@ -279,7 +279,7 @@ static size_t gart_iommu_unmap(struct iommu_domain *domain, unsigned long iova,
> }
>
> static phys_addr_t gart_iommu_iova_to_phys(struct iommu_domain *domain,
> - unsigned long iova)
> + u64 iova)
> {
> struct gart_device *gart = domain->priv;
> unsigned long pte;
> diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
> index b34e5fd..eef9460 100644
> --- a/drivers/iommu/tegra-smmu.c
> +++ b/drivers/iommu/tegra-smmu.c
> @@ -757,7 +757,7 @@ static size_t smmu_iommu_unmap(struct iommu_domain *domain, unsigned long iova,
> }
>
> static phys_addr_t smmu_iommu_iova_to_phys(struct iommu_domain *domain,
> - unsigned long iova)
> + u64 iova)
> {
> struct smmu_as *as = domain->priv;
> unsigned long *pte;
> diff --git a/include/linux/iommu.h b/include/linux/iommu.h
> index ba3b8a9..576cc19 100644
> --- a/include/linux/iommu.h
> +++ b/include/linux/iommu.h
> @@ -91,8 +91,7 @@ struct iommu_ops {
> phys_addr_t paddr, size_t size, int prot);
> size_t (*unmap)(struct iommu_domain *domain, unsigned long iova,
> size_t size);
> - phys_addr_t (*iova_to_phys)(struct iommu_domain *domain,
> - unsigned long iova);
> + phys_addr_t (*iova_to_phys)(struct iommu_domain *domain, u64 iova);
> int (*domain_has_cap)(struct iommu_domain *domain,
> unsigned long cap);
> int (*add_device)(struct device *dev);
> @@ -134,8 +133,7 @@ extern int iommu_map(struct iommu_domain *domain, unsigned long iova,
> phys_addr_t paddr, size_t size, int prot);
> extern size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova,
> size_t size);
> -extern phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
> - unsigned long iova);
> +extern phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, u64 iova);
> extern int iommu_domain_has_cap(struct iommu_domain *domain,
> unsigned long cap);
> extern void iommu_set_fault_handler(struct iommu_domain *domain,
> @@ -267,8 +265,7 @@ static inline void iommu_domain_window_disable(struct iommu_domain *domain,
> {
> }
>
> -static inline phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
> - unsigned long iova)
> +static inline phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, u64 iova)
> {
> return 0;
> }
next prev parent reply other threads:[~2013-03-25 15:07 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-22 22:34 [PATCH 0/5 v10] iommu/fsl: Freescale PAMU driver and IOMMU API implementation Varun Sethi
2013-03-22 22:34 ` Varun Sethi
2013-03-22 22:34 ` [PATCH 5/5 v10] iommu/fsl: Freescale PAMU driver and iommu implementation Varun Sethi
2013-03-22 22:34 ` Varun Sethi
[not found] ` <1363991700-21454-1-git-send-email-Varun.Sethi-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2013-03-22 22:34 ` [PATCH 1/5 v10] iommu/fsl: Make iova u64 in the iommu_iova_to_phys API Varun Sethi
2013-03-22 22:34 ` Varun Sethi
[not found] ` <1363991700-21454-3-git-send-email-Varun.Sethi-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2013-03-25 15:07 ` Don Dutile [this message]
[not found] ` <51506841.4090104-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-03-25 18:35 ` Sethi Varun-B16395
2013-03-22 22:34 ` [PATCH 2/5 v10] powerpc: Add iommu domain pointer to device archdata Varun Sethi
2013-03-22 22:34 ` Varun Sethi
2013-03-22 22:34 ` [PATCH 3/5 v10] iommu/fsl: Add the window permission flag as a parameter to iommu_window_enable API Varun Sethi
2013-03-22 22:34 ` Varun Sethi
2013-03-22 22:35 ` [PATCH 4/5 v10] iommu/fsl: Add additional iommu attributes required by the PAMU driver Varun Sethi
2013-03-22 22:35 ` Varun Sethi
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=51506841.4090104@redhat.com \
--to=ddutile-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=Varun.Sethi-KZfg59tc24xl57MIdRCFDg@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
/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.