Fix Intel IOMMU write-buffer flushing
authorDavid Woodhouse <dwmw2@infradead.org>
Fri, 13 Feb 2009 23:18:03 +0000 (23:18 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 20 Feb 2009 22:36:54 +0000 (14:36 -0800)
commit06d36fce36d9b5bd879f92db2dfe5ce755389d53
tree4963c5001962aedd17493c530712c77e0dc809f7
parent727cfccf7228713b733297207ae26aa97858f126
Fix Intel IOMMU write-buffer flushing

commit ca77fde8e62cecb2c0769052228d15b901367af8 upstream.

This is the cause of the DMA faults and disk corruption that people have
been seeing. Some chipsets neglect to report the RWBF "capability" --
the flag which says that we need to flush the chipset write-buffer when
changing the DMA page tables, to ensure that the change is visible to
the IOMMU.

Override that bit on the affected chipsets, and everything is happy
again.

Thanks to Chris and Bhavesh and others for helping to debug.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Tested-by: Chris Wright <chrisw@sous-sol.org>
Reviewed-by: Bhavesh Davda <bhavesh@vmware.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/pci/intel-iommu.c