From: Linus Torvalds Date: Wed, 9 Nov 2005 22:56:00 +0000 (-0800) Subject: Fix AGP compile on non-x86 architectures X-Git-Tag: v2.6.15-rc1~57 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6730c3c14421b7c924d06e31bb66e0adad225547;p=linux-2.6 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 --- diff --git a/drivers/char/agp/backend.c b/drivers/char/agp/backend.c index 4d5ed18dad..27bca34b4a 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 19f242b507..5567ce8d72 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();