Re: IO_PAGE_FAULTs on unity mapped regions during amd_iommu_init() in Linux 3.4

Shuah Khan
2013-02-11T20:57:09Z

On Mon, 2013-02-11 at 11:49 -0800, Greg KH wrote:
> On Wed, Feb 06, 2013 at 07:40:50PM -0700, Shuah Khan wrote:
> > 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 <joro@8bytes.org>
> > > 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 <joro@8bytes.org>
> >
> > Joerg,
> >
> > 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.
>
> I'm lost here, why isn't this patch in Linus's tree already? You seem
> to be sending backports for something that isn't there to backport yet.
>
> Please resend these patches to stable@vger.kernel.org, with the upstream
> git commit id, when they are in Linus's tree, there's nothing I can do
> with them for now, sorry.
>
> greg k-h

I was hoping Joerg's patch would make it into Linus's tree by now. I
tested the original patch and did the back-port to 3.4 and 3.0 at the
same time, before I loose the test system.

No worries. I will resend the patch when I have the commit id. Sorry for
the confusion.

Thanks,
-- Shuah