intel_th: msu: Use the real device in case of IOMMU domain allocation
authorAlexander Shishkin <alexander.shishkin@linux.intel.com>
Fri, 24 Feb 2017 14:05:22 +0000 (16:05 +0200)
committerAlexander Shishkin <alexander.shishkin@linux.intel.com>
Fri, 25 Aug 2017 15:47:56 +0000 (18:47 +0300)
When allocating DMA buffers for the MSU, use the real device instead
of GTH.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
drivers/hwtracing/intel_th/msu.c

index dbbe31d..dfb57ea 100644 (file)
@@ -709,17 +709,17 @@ static int msc_buffer_win_alloc(struct msc *msc, unsigned int nr_blocks)
        }
 
        for (i = 0; i < nr_blocks; i++) {
-               win->block[i].bdesc = dma_alloc_coherent(msc_dev(msc), size,
-                                                        &win->block[i].addr,
-                                                        GFP_KERNEL);
+               win->block[i].bdesc =
+                       dma_alloc_coherent(msc_dev(msc)->parent->parent, size,
+                                          &win->block[i].addr, GFP_KERNEL);
+
+               if (!win->block[i].bdesc)
+                       goto err_nomem;
 
 #ifdef CONFIG_X86
                /* Set the page as uncached */
                set_memory_uc((unsigned long)win->block[i].bdesc, 1);
 #endif
-
-               if (!win->block[i].bdesc)
-                       goto err_nomem;
        }
 
        win->msc = msc;