- Update to 2.6.25-rc3.
[linux-flexiantxendom0-3.2.10.git] / drivers / char / agp / ati-agp.c
index 2d46b71..55c97f6 100644 (file)
@@ -60,18 +60,9 @@ static int ati_create_page_map(struct ati_page_map *page_map)
        if (page_map->real == NULL)
                return -ENOMEM;
 
-       SetPageReserved(virt_to_page(page_map->real));
+       set_memory_uc((unsigned long)page_map->real, 1);
        err = map_page_into_agp(virt_to_page(page_map->real));
-       page_map->remapped = ioremap_nocache(virt_to_gart(page_map->real),
-                                           PAGE_SIZE);
-       if (page_map->remapped == NULL || err) {
-               ClearPageReserved(virt_to_page(page_map->real));
-               free_page((unsigned long) page_map->real);
-               page_map->real = NULL;
-               return -ENOMEM;
-       }
-       /*CACHE_FLUSH();*/
-       global_cache_flush();
+       page_map->remapped = page_map->real;
 
        for (i = 0; i < PAGE_SIZE / sizeof(unsigned long); i++) {
                writel(agp_bridge->scratch_page, page_map->remapped+i);
@@ -85,8 +76,7 @@ static int ati_create_page_map(struct ati_page_map *page_map)
 static void ati_free_page_map(struct ati_page_map *page_map)
 {
        unmap_page_from_agp(virt_to_page(page_map->real));
-       iounmap(page_map->remapped);
-       ClearPageReserved(virt_to_page(page_map->real));
+       set_memory_wb((unsigned long)page_map->real, 1);
        free_page((unsigned long) page_map->real);
 }