Commit 1d2e6bd8 authored by Andi Kleen's avatar Andi Kleen Committed by Linus Torvalds

[PATCH] AGP: Make gart iterator in K8 AGP driver SMP safe

Ugh!

Cc: davej@redhat.com
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 172efbb4
...@@ -58,7 +58,6 @@ static struct pci_dev * hammers[MAX_HAMMER_GARTS]; ...@@ -58,7 +58,6 @@ static struct pci_dev * hammers[MAX_HAMMER_GARTS];
static struct resource *aperture_resource; static struct resource *aperture_resource;
static int __initdata agp_try_unsupported = 1; static int __initdata agp_try_unsupported = 1;
static int gart_iterator;
#define for_each_nb() for(gart_iterator=0;gart_iterator<nr_garts;gart_iterator++) #define for_each_nb() for(gart_iterator=0;gart_iterator<nr_garts;gart_iterator++)
static void flush_amd64_tlb(struct pci_dev *dev) static void flush_amd64_tlb(struct pci_dev *dev)
...@@ -72,6 +71,7 @@ static void flush_amd64_tlb(struct pci_dev *dev) ...@@ -72,6 +71,7 @@ static void flush_amd64_tlb(struct pci_dev *dev)
static void amd64_tlbflush(struct agp_memory *temp) static void amd64_tlbflush(struct agp_memory *temp)
{ {
int gart_iterator;
for_each_nb() for_each_nb()
flush_amd64_tlb(hammers[gart_iterator]); flush_amd64_tlb(hammers[gart_iterator]);
} }
...@@ -221,6 +221,7 @@ static struct aper_size_info_32 amd_8151_sizes[7] = ...@@ -221,6 +221,7 @@ static struct aper_size_info_32 amd_8151_sizes[7] =
static int amd_8151_configure(void) static int amd_8151_configure(void)
{ {
unsigned long gatt_bus = virt_to_gart(agp_bridge->gatt_table_real); unsigned long gatt_bus = virt_to_gart(agp_bridge->gatt_table_real);
int gart_iterator;
/* Configure AGP regs in each x86-64 host bridge. */ /* Configure AGP regs in each x86-64 host bridge. */
for_each_nb() { for_each_nb() {
...@@ -234,7 +235,7 @@ static int amd_8151_configure(void) ...@@ -234,7 +235,7 @@ static int amd_8151_configure(void)
static void amd64_cleanup(void) static void amd64_cleanup(void)
{ {
u32 tmp; u32 tmp;
int gart_iterator;
for_each_nb() { for_each_nb() {
/* disable gart translation */ /* disable gart translation */
pci_read_config_dword (hammers[gart_iterator], AMD64_GARTAPERTURECTL, &tmp); pci_read_config_dword (hammers[gart_iterator], AMD64_GARTAPERTURECTL, &tmp);
......
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