Re: [PATCH kernel v4 2/4] powerpc/iommu: Allow bypass-only for DMA

2019-07-15 Thread Christoph Hellwig
On Mon, Jul 15, 2019 at 06:33:00PM +1000, Alexey Kardashevskiy wrote:
> 
> 
> On 13/07/2019 01:20, Christoph Hellwig wrote:
> > > This skips the 32bit DMA setup check if the bypass is can be selected.
> > 
> > That sentence does not parse.  I think you need to dop the "can be"
> > based on the actual patch.
> 
> 
> "the 32bit DMA setup check" is
> "if (!(tbl = get_iommu_table_base(dev)))".
> 
> I can rephrase though.

What I mean is to replace

"This skips the 32bit DMA setup check if the bypass is can be selected."

with

"This skips the 32bit DMA setup check if the bypass is selected."

or alternatively:

"This skips the 32bit DMA setup check if the bypass can be selected."

but I think the first version is more accurate.


Re: [PATCH kernel v4 2/4] powerpc/iommu: Allow bypass-only for DMA

2019-07-15 Thread Alexey Kardashevskiy




On 13/07/2019 01:20, Christoph Hellwig wrote:

This skips the 32bit DMA setup check if the bypass is can be selected.


That sentence does not parse.  I think you need to dop the "can be"
based on the actual patch.



"the 32bit DMA setup check" is
"if (!(tbl = get_iommu_table_base(dev)))".

I can rephrase though.


--
Alexey


Re: [PATCH kernel v4 2/4] powerpc/iommu: Allow bypass-only for DMA

2019-07-12 Thread Christoph Hellwig
> This skips the 32bit DMA setup check if the bypass is can be selected.

That sentence does not parse.  I think you need to dop the "can be"
based on the actual patch.


[PATCH kernel v4 2/4] powerpc/iommu: Allow bypass-only for DMA

2019-07-12 Thread Alexey Kardashevskiy
POWER8 and newer support a bypass mode which maps all host memory to
PCI buses so an IOMMU table is not always required. However if we fail to
create such a table, the DMA setup fails and the kernel does not boot.

This skips the 32bit DMA setup check if the bypass is can be selected.

Signed-off-by: Alexey Kardashevskiy 
Reviewed-by: David Gibson 
---

This minor thing helped me debugging next 2 patches so it can help
somebody else too.
---
 arch/powerpc/kernel/dma-iommu.c | 11 +--
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/arch/powerpc/kernel/dma-iommu.c b/arch/powerpc/kernel/dma-iommu.c
index a0879674a9c8..c963d704fa31 100644
--- a/arch/powerpc/kernel/dma-iommu.c
+++ b/arch/powerpc/kernel/dma-iommu.c
@@ -122,18 +122,17 @@ int dma_iommu_dma_supported(struct device *dev, u64 mask)
 {
struct iommu_table *tbl = get_iommu_table_base(dev);
 
-   if (!tbl) {
-   dev_info(dev, "Warning: IOMMU dma not supported: mask 0x%08llx"
-   ", table unavailable\n", mask);
-   return 0;
-   }
-
if (dev_is_pci(dev) && dma_iommu_bypass_supported(dev, mask)) {
dev->archdata.iommu_bypass = true;
dev_dbg(dev, "iommu: 64-bit OK, using fixed ops\n");
return 1;
}
 
+   if (!tbl) {
+   dev_err(dev, "Warning: IOMMU dma not supported: mask 0x%08llx, 
table unavailable\n", mask);
+   return 0;
+   }
+
if (tbl->it_offset > (mask >> tbl->it_page_shift)) {
dev_info(dev, "Warning: IOMMU offset too big for device 
mask\n");
dev_info(dev, "mask: 0x%08llx, table offset: 0x%08lx\n",
-- 
2.17.1