diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-09 14:56:00 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-09 14:56:00 -0800 |
commit | 6730c3c14421b7c924d06e31bb66e0adad225547 (patch) | |
tree | e46448ce7930756b6ca2fb45104bc95b874c6a39 /drivers/char | |
parent | 969780f8079994f161de991870feba68f49fc3d7 (diff) | |
download | linux-6730c3c14421b7c924d06e31bb66e0adad225547.tar.gz linux-6730c3c14421b7c924d06e31bb66e0adad225547.tar.bz2 linux-6730c3c14421b7c924d06e31bb66e0adad225547.zip |
Fix AGP compile on non-x86 architectures
AGP shouldn't use "global_flush_tlb()" to flush the AGP mappings, that i
spurely an x86'ism. The proper AGP mapping flusher that should be used
is "flush_agp_mappings()", which on x86 obviously happens to do a global
TLB flush.
This makes AGP (or at least the config _I_ happen to use) compile again
on ppc64.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/agp/backend.c | 6 | ||||
-rw-r--r-- | drivers/char/agp/generic.c | 4 |
2 files changed, 4 insertions, 6 deletions
diff --git a/drivers/char/agp/backend.c b/drivers/char/agp/backend.c index 4d5ed18dad00..27bca34b4a65 100644 --- a/drivers/char/agp/backend.c +++ b/drivers/char/agp/backend.c @@ -147,7 +147,7 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge) printk(KERN_ERR PFX "unable to get memory for scratch page.\n"); return -ENOMEM; } - global_flush_tlb(); + flush_agp_mappings(); bridge->scratch_page_real = virt_to_gart(addr); bridge->scratch_page = @@ -191,7 +191,7 @@ err_out: if (bridge->driver->needs_scratch_page) { bridge->driver->agp_destroy_page( gart_to_virt(bridge->scratch_page_real)); - global_flush_tlb(); + flush_agp_mappings(); } if (got_gatt) bridge->driver->free_gatt_table(bridge); @@ -217,7 +217,7 @@ static void agp_backend_cleanup(struct agp_bridge_data *bridge) bridge->driver->needs_scratch_page) { bridge->driver->agp_destroy_page( gart_to_virt(bridge->scratch_page_real)); - global_flush_tlb(); + flush_agp_mappings(); } } diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c index 19f242b50781..5567ce8d72b0 100644 --- a/drivers/char/agp/generic.c +++ b/drivers/char/agp/generic.c @@ -155,7 +155,7 @@ void agp_free_memory(struct agp_memory *curr) for (i = 0; i < curr->page_count; i++) { curr->bridge->driver->agp_destroy_page(gart_to_virt(curr->memory[i])); } - global_flush_tlb(); + flush_agp_mappings(); } agp_free_key(curr->key); vfree(curr->memory); @@ -213,8 +213,6 @@ struct agp_memory *agp_allocate_memory(struct agp_bridge_data *bridge, new->memory[i] = virt_to_gart(addr); new->page_count++; } - global_flush_tlb(); - new->bridge = bridge; flush_agp_mappings(); |