]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ioat2: catch and recover from broken vtd configurations v6
authorDan Williams <dan.j.williams@intel.com>
Fri, 23 Jul 2010 22:47:56 +0000 (15:47 -0700)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Sun, 17 Apr 2011 20:15:34 +0000 (16:15 -0400)
commit84c3758d0d4ce1b0f0eea55b1b20a4e9a0a6a792
treeaeee517bbd20e7d76160a4da86043816a930fcc3
parent98604bb6bbb27ef5ec27e46f9a6155635a05e856
ioat2: catch and recover from broken vtd configurations v6

commit 556ab45f9a775bfa4762bacc0a4afb5b44b067bc upstream.

On some platforms (MacPro3,1) the BIOS assigns the ioatdma device to the
incorrect iommu causing faults when the driver initializes.  Add a quirk
to catch this misconfiguration and try falling back to untranslated
operation (which works in the MacPro3,1 case).

Assuming there are other platforms with misconfigured iommus teach the
ioatdma driver to treat initialization failures as non-fatal (just fail
the driver load and emit a warning instead of triggering a BUG_ON).

This can be classified as a boot regression since 2.6.32 on affected
platforms since the ioatdma module did not autoload prior to that
kernel.

[PG: 34 has no WARN_TAINT_ONCE, use WARN_ONCE instead]

Acked-by: David Woodhouse <David.Woodhouse@intel.com>
Reported-by: Chris Li <lkml@chrisli.org>
Tested-by: Chris Li <lkml@chrisli.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
drivers/dma/ioat/dma.h
drivers/dma/ioat/dma_v2.c
drivers/dma/ioat/dma_v3.c
drivers/pci/intel-iommu.c