RE: [PATCH v3 5/6] dpaa_eth: fix iova handling for contiguous frames

2019-05-31 Thread Laurentiu Tudor
> -Original Message-
> From: Christoph Hellwig 
> Sent: Friday, May 31, 2019 7:56 PM
> 
> On Fri, May 31, 2019 at 04:53:16PM +, Laurentiu Tudor wrote:
> > Unfortunately due to our hardware particularities we do not have
> alternatives. This is also the case for our next generation of ethernet
> drivers [1]. I'll let my colleagues that work on the ethernet drivers to
> comment more on this.
> 
> Then you need to enhance the DMA API to support your use case instead
> of using an API only supported for two specific IOMMU implementations.
> 
> Remember in Linux you can should improve core code and not hack around
> it in crappy ways making lots of assumptions in your drivers.

Alright, I'm ok with that. I'll try to come up with something, will keep you in 
the loop.

---
Best Regards, Laurentiu


Re: [PATCH v3 5/6] dpaa_eth: fix iova handling for contiguous frames

2019-05-31 Thread Christoph Hellwig
On Fri, May 31, 2019 at 04:53:16PM +, Laurentiu Tudor wrote:
> Unfortunately due to our hardware particularities we do not have 
> alternatives. This is also the case for our next generation of ethernet 
> drivers [1]. I'll let my colleagues that work on the ethernet drivers to 
> comment more on this.

Then you need to enhance the DMA API to support your use case instead
of using an API only supported for two specific IOMMU implementations.

Remember in Linux you can should improve core code and not hack around
it in crappy ways making lots of assumptions in your drivers.


RE: [PATCH v3 5/6] dpaa_eth: fix iova handling for contiguous frames

2019-05-31 Thread Laurentiu Tudor
Hi Christoph,

> -Original Message-
> From: Christoph Hellwig 
> Sent: Friday, May 31, 2019 7:32 PM
> 
> On Thu, May 30, 2019 at 05:19:50PM +0300, laurentiu.tu...@nxp.com wrote:
> > +static phys_addr_t dpaa_iova_to_phys(const struct dpaa_priv *priv,
> > +dma_addr_t addr)
> > +{
> > +   return priv->domain ? iommu_iova_to_phys(priv->domain, addr) : addr;
> > +}
> 
> Again, a driver using the iommu API must not call iommu_* APIs.
> 
> This chane is not acceptable.

Unfortunately due to our hardware particularities we do not have alternatives. 
This is also the case for our next generation of ethernet drivers [1]. I'll let 
my colleagues that work on the ethernet drivers to comment more on this.

[1] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c#n37

---
Best Regards, Laurentiu


Re: [PATCH v3 5/6] dpaa_eth: fix iova handling for contiguous frames

2019-05-31 Thread Christoph Hellwig
On Thu, May 30, 2019 at 05:19:50PM +0300, laurentiu.tu...@nxp.com wrote:
> +static phys_addr_t dpaa_iova_to_phys(const struct dpaa_priv *priv,
> +  dma_addr_t addr)
> +{
> + return priv->domain ? iommu_iova_to_phys(priv->domain, addr) : addr;
> +}

Again, a driver using the iommu API must not call iommu_* APIs.

This chane is not acceptable.