diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-28 13:37:06 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-02-28 13:37:06 -0500 |
commit | 58f02db466900003b801bdfdeddc4d96ce42b7d5 (patch) | |
tree | 3aec1f9f4aa147fde3facfe6c5f893ac667ce737 /drivers/char/agp | |
parent | 43a834d86c136b31ef6ad796725eb474a55a908d (diff) | |
parent | cb19060abfdecac0d1eb2d2f0e7d6b7a3f8bc4f4 (diff) |
Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
x86, cacheinfo: Enable L3 CID only on AMD
x86, cacheinfo: Remove NUMA dependency, fix for AMD Fam10h rev D1
x86, cpu: Print AMD virtualization features in /proc/cpuinfo
x86, cacheinfo: Calculate L3 indices
x86, cacheinfo: Add cache index disable sysfs attrs only to L3 caches
x86, cacheinfo: Fix disabling of L3 cache indices
intel-agp: Switch to wbinvd_on_all_cpus
x86, lib: Add wbinvd smp helpers
Diffstat (limited to 'drivers/char/agp')
-rw-r--r-- | drivers/char/agp/intel-agp.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c index 3999a5f25f38..8a713f1e9653 100644 --- a/drivers/char/agp/intel-agp.c +++ b/drivers/char/agp/intel-agp.c | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
9 | #include <linux/pagemap.h> | 9 | #include <linux/pagemap.h> |
10 | #include <linux/agp_backend.h> | 10 | #include <linux/agp_backend.h> |
11 | #include <asm/smp.h> | ||
11 | #include "agp.h" | 12 | #include "agp.h" |
12 | 13 | ||
13 | /* | 14 | /* |
@@ -815,12 +816,6 @@ static void intel_i830_setup_flush(void) | |||
815 | intel_i830_fini_flush(); | 816 | intel_i830_fini_flush(); |
816 | } | 817 | } |
817 | 818 | ||
818 | static void | ||
819 | do_wbinvd(void *null) | ||
820 | { | ||
821 | wbinvd(); | ||
822 | } | ||
823 | |||
824 | /* The chipset_flush interface needs to get data that has already been | 819 | /* The chipset_flush interface needs to get data that has already been |
825 | * flushed out of the CPU all the way out to main memory, because the GPU | 820 | * flushed out of the CPU all the way out to main memory, because the GPU |
826 | * doesn't snoop those buffers. | 821 | * doesn't snoop those buffers. |
@@ -837,12 +832,10 @@ static void intel_i830_chipset_flush(struct agp_bridge_data *bridge) | |||
837 | 832 | ||
838 | memset(pg, 0, 1024); | 833 | memset(pg, 0, 1024); |
839 | 834 | ||
840 | if (cpu_has_clflush) { | 835 | if (cpu_has_clflush) |
841 | clflush_cache_range(pg, 1024); | 836 | clflush_cache_range(pg, 1024); |
842 | } else { | 837 | else if (wbinvd_on_all_cpus() != 0) |
843 | if (on_each_cpu(do_wbinvd, NULL, 1) != 0) | 838 | printk(KERN_ERR "Timed out waiting for cache flush.\n"); |
844 | printk(KERN_ERR "Timed out waiting for cache flush.\n"); | ||
845 | } | ||
846 | } | 839 | } |
847 | 840 | ||
848 | /* The intel i830 automatically initializes the agp aperture during POST. | 841 | /* The intel i830 automatically initializes the agp aperture during POST. |