|
@@ -186,8 +186,9 @@ static void *i8xx_alloc_pages(void)
|
|
|
return NULL;
|
|
|
|
|
|
if (change_page_attr(page, 4, PAGE_KERNEL_NOCACHE) < 0) {
|
|
|
+ change_page_attr(page, 4, PAGE_KERNEL);
|
|
|
global_flush_tlb();
|
|
|
- __free_page(page);
|
|
|
+ __free_pages(page, 2);
|
|
|
return NULL;
|
|
|
}
|
|
|
global_flush_tlb();
|
|
@@ -209,7 +210,7 @@ static void i8xx_destroy_pages(void *addr)
|
|
|
global_flush_tlb();
|
|
|
put_page(page);
|
|
|
unlock_page(page);
|
|
|
- free_pages((unsigned long)addr, 2);
|
|
|
+ __free_pages(page, 2);
|
|
|
atomic_dec(&agp_bridge->current_memory_agp);
|
|
|
}
|
|
|
|
|
@@ -315,9 +316,6 @@ static struct agp_memory *alloc_agpphysmem_i8xx(size_t pg_count, int type)
|
|
|
struct agp_memory *new;
|
|
|
void *addr;
|
|
|
|
|
|
- if (pg_count != 1 && pg_count != 4)
|
|
|
- return NULL;
|
|
|
-
|
|
|
switch (pg_count) {
|
|
|
case 1: addr = agp_bridge->driver->agp_alloc_page(agp_bridge);
|
|
|
global_flush_tlb();
|