Commit 85f9eebc authored by Andi Kleen's avatar Andi Kleen Committed by Linus Torvalds

[PATCH] x86_64: Use cpu_relax in poll loop in GART IOMMU

The code waits for the GART to clear the TLB flush bit. Use cpu_relax
in this time to allow hypervisors to yield the CPU in this time.
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 77d910f5
...@@ -148,9 +148,12 @@ static void flush_gart(struct device *dev) ...@@ -148,9 +148,12 @@ static void flush_gart(struct device *dev)
if (!northbridges[i]) if (!northbridges[i])
continue; continue;
/* Make sure the hardware actually executed the flush. */ /* Make sure the hardware actually executed the flush. */
do { for (;;) {
pci_read_config_dword(northbridges[i], 0x9c, &w); pci_read_config_dword(northbridges[i], 0x9c, &w);
} while (w & 1); if (!(w & 1))
break;
cpu_relax();
}
} }
if (!flushed) if (!flushed)
printk("nothing to flush?\n"); printk("nothing to flush?\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment