vserver 2.0 rc7
[linux-2.6.git] / include / asm-parisc / cacheflush.h
index a3132a2..0673271 100644 (file)
@@ -57,9 +57,9 @@ flush_user_icache_range(unsigned long start, unsigned long end)
 extern void flush_dcache_page(struct page *page);
 
 #define flush_dcache_mmap_lock(mapping) \
-       spin_lock_irq(&(mapping)->tree_lock)
+       write_lock_irq(&(mapping)->tree_lock)
 #define flush_dcache_mmap_unlock(mapping) \
-       spin_unlock_irq(&(mapping)->tree_lock)
+       write_unlock_irq(&(mapping)->tree_lock)
 
 #define flush_icache_page(vma,page)    do { flush_kernel_dcache_page(page_address(page)); flush_kernel_icache_page(page_address(page)); } while (0)
 
@@ -67,14 +67,14 @@ extern void flush_dcache_page(struct page *page);
 
 #define copy_to_user_page(vma, page, vaddr, dst, src, len) \
 do { \
-       flush_cache_page(vma, vaddr); \
+       flush_cache_page(vma, vaddr, page_to_pfn(page)); \
        memcpy(dst, src, len); \
        flush_kernel_dcache_range_asm((unsigned long)dst, (unsigned long)dst + len); \
 } while (0)
 
 #define copy_from_user_page(vma, page, vaddr, dst, src, len) \
 do { \
-       flush_cache_page(vma, vaddr); \
+       flush_cache_page(vma, vaddr, page_to_pfn(page)); \
        memcpy(dst, src, len); \
 } while (0)
 
@@ -170,7 +170,7 @@ __flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr)
 }
 
 static inline void
-flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr)
+flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, unsigned long pfn)
 {
        BUG_ON(!vma->vm_mm->context);