Messages in this thread | | | Date | Mon, 5 Apr 2010 11:34:55 -0400 | From | Neil Horman <> | Subject | Re: [PATCH 1/2] x86/amd-iommu: enable iommu before attaching devices |
| |
On Thu, Apr 01, 2010 at 06:23:53PM -0700, Chris Wright wrote: > Hit another kdump problem as reported by Neil Horman. When initializaing > the IOMMU, we attach devices to their domains before the IOMMU is > fully (re)initialized. Attaching a device will issue some important > invalidations. In the context of the newly kexec'd kdump kernel, the > IOMMU may have stale cached data from the original kernel. Because we > do the attach too early, the invalidation commands are placed in the new > command buffer before the IOMMU is updated w/ that buffer. This leaves > the stale entries in the kdump context and can renders device unusable. > Simply enable the IOMMU before we do the attach. > > Cc: Neil Horman <nhorman@tuxdriver.com> > Cc: Vivek Goyal <vgoyal@redhat.com> > Signed-off-by: Chris Wright <chrisw@sous-sol.org> > --- > arch/x86/kernel/amd_iommu_init.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > --- a/arch/x86/kernel/amd_iommu_init.c > +++ b/arch/x86/kernel/amd_iommu_init.c > @@ -1288,6 +1288,8 @@ static int __init amd_iommu_init(void) > if (ret) > goto free; > > + enable_iommus(); > + > if (iommu_pass_through) > ret = amd_iommu_init_passthrough(); > else > @@ -1300,8 +1302,6 @@ static int __init amd_iommu_init(void) > > amd_iommu_init_notifier(); > > - enable_iommus(); > - > if (iommu_pass_through) > goto out; > >
FWIW, this patch series fixed the kdump issues I was having on my AMD system here. Thanks Chris
Acked-by: Neil Horman <nhorman@tuxdriver.com>
| |