[lkml]   [2013]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: IO_PAGE_FAULTs on unity mapped regions during amd_iommu_init() in Linux 3.4
On Wed, 2013-02-06 at 13:12 +0100, Joerg Roedel wrote:
> On Tue, Feb 05, 2013 at 06:57:21AM -0700, Shuah Khan wrote:
> > Thanks much. I will hang on to this test system for testing your fix.
> Okay, here is the simple fix for v3.8-rc6. I guess it is not
> straighforward to port it to v3.4, but it should be doable.
> From 2ecf57c85e67e0243b36b787d0490c0b47202ba8 Mon Sep 17 00:00:00 2001
> From: Joerg Roedel <>
> Date: Wed, 6 Feb 2013 12:55:23 +0100
> Subject: [PATCH] iommu/amd: Initialize device table after dma_ops
> When dma_ops are initialized the unity mappings are
> created. The init_device_table_dma() function makes sure DMA
> from all devices is blocked by default. This opens a short
> window in time where DMA to unity mapped regions is blocked
> by the IOMMU. Make sure this does not happen by initializing
> the device table after dma_ops.
> Signed-off-by: Joerg Roedel <>


I tested your patch on 3.8. I was able to reproduce the problem and then
apply your patch to verify that the problem is fixed. This patch applies
cleanly to 3.7.6, however I could not reproduce the problem on 3.7.6
without the patch. But the window exists on 3.7 as well. Your patch can
be applied to 3.7.6 as is.

I back-ported the patch to 3.4 and 3.0 and tested. I am sending those
patches after this email.

On 3.4.29 and 3.0.62 I was able to reproduce the problem and then
applied the back-ported patch to verify that the problem is fixed.

Thanks again for the fix.

-- Shuah

 \ /
  Last update: 2013-02-07 04:21    [W:0.099 / U:0.484 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site