aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/ioat/dma.h
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2010-07-23 15:47:56 -0700
committerDan Williams <dan.j.williams@intel.com>2010-08-04 14:18:17 -0700
commit556ab45f9a775bfa4762bacc0a4afb5b44b067bc (patch)
tree6caf3f7c72617d50d78c4197b872fd0a22b18c99 /drivers/dma/ioat/dma.h
parent128f904ac87cb6e63921e80f378fdf9ba532c0f6 (diff)
downloadkernel_samsung_smdk4412-556ab45f9a775bfa4762bacc0a4afb5b44b067bc.zip
kernel_samsung_smdk4412-556ab45f9a775bfa4762bacc0a4afb5b44b067bc.tar.gz
kernel_samsung_smdk4412-556ab45f9a775bfa4762bacc0a4afb5b44b067bc.tar.bz2
ioat2: catch and recover from broken vtd configurations v6
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. Cc: <stable@kernel.org> 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>
Diffstat (limited to 'drivers/dma/ioat/dma.h')
-rw-r--r--drivers/dma/ioat/dma.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/dma/ioat/dma.h b/drivers/dma/ioat/dma.h
index 6d3a73b..5216c8a 100644
--- a/drivers/dma/ioat/dma.h
+++ b/drivers/dma/ioat/dma.h
@@ -97,6 +97,7 @@ struct ioat_chan_common {
#define IOAT_RESET_PENDING 2
#define IOAT_KOBJ_INIT_FAIL 3
#define IOAT_RESHAPE_PENDING 4
+ #define IOAT_RUN 5
struct timer_list timer;
#define COMPLETION_TIMEOUT msecs_to_jiffies(100)
#define IDLE_TIMEOUT msecs_to_jiffies(2000)