From 6730c3c14421b7c924d06e31bb66e0adad225547 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Wed, 9 Nov 2005 14:56:00 -0800 Subject: [PATCH] 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 --- drivers/char/agp/backend.c | 6 +++--- 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 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge) 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();